"use strict";
let obj1 = { foo: 'bar', x: 42 };
function abc(...aaa) {
console.log(aaa);
}
abc(obj1)
// log result: [{foo: 'bar', x: 42}]
Run Code Online (Sandbox Code Playgroud)
"use strict";
let obj1 = { foo: 'bar', x: 42 };
function abc(...aaa) {
console.log(aaa);
}
abc(obj1)
// log result: [{foo: 'bar', x: 42}]
Run Code Online (Sandbox Code Playgroud)
所以在上面的代码中,obj1是一个对象。所以我在函数定义中使用了spread运算符,并在调用函数时给它一个对象。为什么结果是一个包含该输入对象的一项的数组?这里的语法是什么?我在MDN 中没有找到关于 spread operator 的任何解释。请帮我解释一下。
Cer*_*nce 11
这不是传播。这些是rest parameters,它们收集传递到单个数组中的所有剩余参数。
这里有一个参数,因此使用 rest 创建一个只包含该参数(恰好是一个对象)的数组。
以下是一些其他示例,可能会更清楚:
function abc(...aaa) {
console.log(aaa);
}
abc(5, 5, 5, 5, 5)
abc(3, 1, 2, 5)
abc(1, 2, 3)
abc(0)Run Code Online (Sandbox Code Playgroud)
它只会以单个数组的形式记录所有传递的参数。
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |