在哪里可以获取有关JavaScript函数中对象参数语法的信息?

12

如果我想这样调用一个函数:

moo({ a: 4 });

通常我要这样表述我的函数定义:

function moo(myArgObj) {
    print(myArgObj.a);
}

但是这种非常棒的语法在SpiderMonkey中用于定义函数是完全有效的:

function moo({ a, b, c }) { // valid syntax!
    print(a); // prints 4
}

这是什么功能?


你在那个参数的“对象声明”中没有漏掉属性名称了吗? - Bergi
1个回答

7

一些链接已失效。 - Nguyễn Xuân Hoàng
@NguyễnXuânHoàng 谢谢,但我不确定它们是死了还是只是没有响应(特别是ecmascript wiki经常挂掉)。不过你可以在互联网档案馆中找到它们:[1][2] - Bergi
@NguyễnXuânHoàng 当然,五年多过去了,这些草案已经成为标准,并且今天有更好的相关资源可用 :-) - Bergi
解构赋值解释了传递对象中属性的值如何分配给参数变量中的属性,但它并没有解释如何在函数中无需限定地访问这些属性 - 即未命名参数的整个过程是如何运作的。有任何想法是从哪里来的? - Bob
@Bob,参数变量中没有“属性”。解构目标成为函数中的局部变量,就像普通参数一样。 - Bergi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接