matsukaz's blog

Agile, node.js, ruby, AWS, cocos2d-xなどなどいろいろやってます

ObjectからObject?への分割代入

ObjectからObject?への分割代入より。

var {0:a, 3:b} = [10,20,30,40,50];
alert(a);// 10
alert(b);// 30 (40の間違いっぽい)

varの宣言がえらく気持ち悪いけど、こんなことできるんだなぁとびっくり(@@)
実用的な利用シーンとしては、id:os0xさんが書かれていたプロパティの値を変数にコピーするとか

document.addEventListener('click',function(evt){
  var {pageX:x,pageY:y} = evt;
  console.log(x,y);
},false);

複数オブジェクトを戻り値として返す関数の結果を受け取るときとかに使えそうです。

function hoge(){
  return {fuga:"fugaVal", foo:["fooVal1","fooVal2"]};
}
var {fuga:x, foo:y} = hoge();
alert(x);  // fugaVal
alert(y);  // fooVal1,fooVal2

JavaScriptはやっぱ面白いなぁ〜