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

IT技术 javascript ecmascript-6 syntax destructuring
2021-01-11 19:07:26

如果我想调用这样的函数:

moo({ a: 4 });

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

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

但是这个很棒的语法在 spidermonkey 中完全有效用于定义函数:

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

这是什么功能?

1个回答

这叫做解构您可能会在MDN:解构赋值中找到最多的信息(特别是请参阅从作为函数参数传递的对象中解包字段)。


ECMAScript 标准讨论可以在他们的 wiki 页面上找到,也可能是Dailyjs 上的这篇博文。

@NguyễnXuânHoàng 谢谢,但我不确定他们是死了还是只是没有响应(尤其是 ecmascript wiki 经常关闭)。你可以在互联网档案中找到它们:[1] , [2]
2021-03-13 19:07:26
@Bob 没有“参数变量中的属性”。解构目标成为函数中的局部变量,就像普通参数一样。
2021-03-16 19:07:26
一些链接失效
2021-03-21 19:07:26
@NguyễnXuânHoàng 当然,五年多后,这些草案已经进入标准,而且今天关于该主题的资源要好得多:-)
2021-03-28 19:07:26
解构解释了如何将传递的对象中的属性值分配给参数变量中的属性,但它没有解释如何在没有限定的情况下在函数中访问这些属性 - 即。整个业务如何使用未命名的参数。知道这是从哪里来的吗?
2021-03-29 19:07:26