Onde posso obter informações sobre a syntax do parâmetro do object para funções javascript?

Se eu quiser chamar uma function como esta:

moo({ a: 4 }); 

Normalmente eu teria que expressar minha definição de function assim:

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

Mas esta incrível syntax é totalmente válida no spidermonkey para definir funções:

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

Alguma idéia de onde eu posso encontrar informações sobre isso? Eu gostaria de ver o quão poderoso é esse recurso.

Eu vi isso em um javascript / ecmascript 5 falar um tempo atrás, mas não consigo mais encontrá-lo. Ele não aparece em nenhum dos vídeos que eu posso encontrar no youtube, e não é mencionado no próprio PDF do padrão.

Chama-se desestruturação . Você pode encontrar mais informações no MDN: Destructuring assignment .


A discussão dos padrões do ECMAScript pode ser encontrada em sua página wiki , também interessante pode ser este post do blog no dailyjs.