如何为扩展运算符创建 polyfill

Sas*_*nda 7 javascript polyfills ecmascript-6

我试图为扩展运算符创建一个 polyfill。我的目标是创建类似于扩展运算符的东西,我可以使用三个@@@ 符号代替三个点。

例如,在 ES6 中

function sum(x, y, z) {
  return x + y + z;
}

const numbers = [1, 2, 3];

console.log(sum(...numbers));
// expected output: 6
Run Code Online (Sandbox Code Playgroud)

我试图实现类似的功能


// Instead of triple dots, it should be triple @
console.log(sum(@@@numbers));
// expected output should be 6

Run Code Online (Sandbox Code Playgroud)

我希望的输出console.log(sum(@@@numbers));是6.

yuv*_*.bl 8

您不能为扩展运算符创建 polyfill。

对付这样的向后兼容性问题的正确方式是写在ES6你的代码,并使用transpiler像巴贝尔将其自动转换为ES5。