我刚刚开始使用 Angular2,通常注入提供程序看起来像:
providers : [SomeProvider],
但是,我已经看到一些在注入的提供程序名称之前包含“...”的软件包,例如:
providers : [...SomeProvider],
为什么要这样做?是...
什么,它在做什么?
我刚刚开始使用 Angular2,通常注入提供程序看起来像:
providers : [SomeProvider],
但是,我已经看到一些在注入的提供程序名称之前包含“...”的软件包,例如:
providers : [...SomeProvider],
为什么要这样做?是...
什么,它在做什么?
那是扩展运算符。扩展语法允许在需要多个参数(用于函数调用)或多个元素(用于数组文字)或多个变量(用于解构赋值)的地方扩展表达式。
你可能在想我们为什么需要这个?
更好的应用
示例:在您想将数组用作函数的参数的情况下,通常使用 Function.prototype.apply。
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction.apply(null, args);
使用 ES6 传播,您现在可以将上述内容编写为:
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(...args);
参数列表中的任何参数都可以使用扩展语法,并且可以多次使用。
function myFunction(v, w, x, y, z) { }
var args = [0, 1];
myFunction(-1, ...args, 2, ...[3]);
更多信息和示例可以在这里找到: https ://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator