代码之家  ›  专栏  ›  技术社区  ›  snazzybouche

更换排列运算符?

  •  0
  • snazzybouche  · 技术社区  · 8 年前

    我有以下功能。

    alias.writeDialogue = function() {
        return writeDialogue(...arguments);
    };
    

    我希望支持IE,它不支持spread运算符。我该换什么 ... ?

    1 回复  |  直到 8 年前
        1
  •  3
  •   CertainPerformance    8 年前

    使用 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);
      })
    };
    

    巴贝尔也会自动转换箭头功能, const 和 let , async / await (使用reprenatorruntime),等等。这是必须的。