私は次のコードを持っています(Firefoxでのみ正しく解析および実行されます)
var {A: a} = {A: 1};
console.log(a); // 1
これで、値が1の「a」という変数ができました。
だから私は3つの質問があります
- ここで「var」が必要なのはなぜですか?'='のrhsにvarが必要なのはなぜですか
- 'a'はどのようにスコープに含まれますか?
- 'a'はどのように1に割り当てられますか?
ここではメンバーごとのコピーを使用しているようですが、なぜですか?
lhsのオブジェクトはrhsのオブジェクトを参照するべきではありませんか?
例えば、
var b = {B: 1};
var c = {B: 2};
b = c;
b.B = 3;
console.log(c);
この割り当て(b = c)では、bはcを参照し、同じオブジェクトを共有します。この割り当てが元の割り当てと異なるのはなぜですか?
Firefox16.0でテストしていることを忘れました