代码A,这没关系并记录[ 1, 2, 3 ]
function fn() {
console.log(...arguments);
}
fn([1, 2, 3]);
代码B,SyntaxError: Unexpected token ...
失败
此外,将...arguments
包裹在()
中也无济于事。
function fn() {
var a = ...arguments;
}
fn([1, 2, 3]);
在这两种情况下,我都假设,我们有一个RHS
查找。为什么可以将...arguments
传递给console.log
(或其他函数),但不能将其分配给变量?
PS。我知道这在现实代码中永远不会存在,或者还有其他更好的解决方案。我的问题纯粹是理论/概念,仅限于理解为什么会出现不同的行为。
答案 0 :(得分:3)
传播语法的两个应用是:
这样可行:
function fn() {
var a = [...arguments];
}
答案 1 :(得分:2)
它在CODE B中不起作用......语法无效
你可以传播像
这样的fn参数function fn(...params)
{
...
}
或Array
和Object
var a = [1,2,3,4,5],
b = [6,...a];
var x = {a:1,b:1},
y = {c:1,...x}