代码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。我知道这在现实生活中是不存在的,或者有其他更好的解决方案。我的问题纯粹是理论性的/概念性的,仅限于理解为什么会发生不同的行为。
发布于 2016-06-30 11:21:00
扩展语法的两个应用程序是:
因此,这是可行的:
function fn() {
var a = [...arguments];
}发布于 2016-06-30 11:20:13
它不像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}https://stackoverflow.com/questions/38121443
复制相似问题