Angular2 依赖注入:在某些注入的包名称之前,我看到的"..."语法是什么(即'提供者 = [...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

最新更新