我有以下功能。

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还将自动转换箭头功能constletasync / await(带有RegeneratorRuntime),等等。这是必须的。

10-04 21:21