我有以下功能。
alias.writeDialogue = function() {
return writeDialogue(...arguments);
};
我希望支持IE,它不支持传播运算符。我应该用什么代替
...
? 最佳答案
使用apply
将参数数组转换为参数列表:
return writeDialogue.apply(undefined, arguments);
但是最好将Babel集成到您的构建过程中,以便您可以使用现代语法编写并自动将其转换为与ES5兼容的语法。例如
https://babeljs.io/repl/
插入
alias = {
writeDialogue: function() {
return writeDialogue(...arguments);
}
}
你得到
"use strict";
alias = {
writeDialogue: function (_writeDialogue) {
function writeDialogue() {
return _writeDialogue.apply(this, arguments);
}
writeDialogue.toString = function () {
return _writeDialogue.toString();
};
return writeDialogue;
}(function () {
return writeDialogue.apply(undefined, arguments);
})
};
Babel还将自动转换箭头功能
const
和let
,async
/ await
(带有RegeneratorRuntime),等等。这是必须的。