2012-05-29 2 views
4

Если я хочу, чтобы вызвать функцию так:Где я могу получить информацию о синтаксисе параметра объекта для функций javascript?

moo({ a: 4 }); 

Обычно я бы сформулировать свое определение функции, как это:

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

Но этот удивительный синтаксис является полностью действительным в SpiderMonkey для определения функции:

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

Любые идеи, где я могу найти информацию об этом? Я хотел бы посмотреть, насколько мощна эта функция.

Я видел это в разговоре javascript/ecmascript 5 некоторое время назад, но я больше не могу его найти. Он не отображается ни в одном из видео, которое я могу найти на youtube, и оно не упоминается в самом PDF-стандарте.

+0

Разве вы не пропустили имена свойств в этих аргументах «объявление объекта»? – Bergi

ответ

2

Это называется destructuring. Вы можете найти наибольшую информацию по адресу MDN: Destructuring assignment.


ECMAScript стандарты обсуждения могут быть найдены на their wiki page, также может быть интересно this blog post на dailyjs.

+0

Некоторые ссылки умер –

+0

@ NguyễnXuânHoàng Спасибо, но я не уверен, что они мертвы или просто не реагируют (особенно вики-атрибуты часто отсутствуют). Вы можете найти их оба в интернет-архиве: [\ [1 \]] (https://web.archive.org/web/20150219021117/http://dailyjs.com:80/2011/09/12/ destructuring /), [\ [2 \]] (https://web.archive.org/web/20161222134616/http://wiki.ecmascript.org/doku.php?id=harmony:destructuring) – Bergi

+0

@ NguyễnXuânHoàng И конечно, более пяти лет спустя, проекты пробились в стандарт, и сегодня есть гораздо лучшие ресурсы по этой теме :-) – Bergi