【问题标题】:Where can I get info on the object parameter syntax for JavaScript functions?我在哪里可以获得有关 JavaScript 函数的对象参数语法的信息?
【发布时间】:2012-06-04 00:30:16
【问题描述】:

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

moo({ a: 4 });

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

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

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

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

这个功能是什么?

【问题讨论】:

  • 你没有错过那个参数“对象声明”中的属性名称吗?

标签: javascript ecmascript-6 syntax destructuring


【解决方案1】:

它叫做destructuring。您可能会在MDN: Destructuring assignment 找到最多的信息(特别是请参阅Unpacking fields from objects passed as function parameter)。


ECMAScript 标准讨论可以在their wiki page 上找到,也可以在dailyjs 上找到this blog post

【讨论】:

  • 部分链接失效
  • @NguyễnXuânHoàng 谢谢,但我不确定他们是死了还是只是没有响应(尤其是 ecmascript wiki 经常关闭)。不过,您可以在 Internet 存档中找到它们:[1][2]
  • @NguyễnXuânHoàng 当然,五年多过去了,草案已经进入标准,今天有更多关于该主题的更好资源 :-)
  • 解构解释了传递对象中的属性值如何分配给参数变量中的属性,但它没有解释如何在没有限定的情况下在函数中访问这些属性 - 即。整个业务如何使用未命名的参数。知道这是从哪里来的吗?
  • @Bob 没有“参数变量中的属性”。解构目标成为函数中的局部变量,就像普通参数一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
相关资源
最近更新 更多