我有以下代码(仅在 Firefox 中解析和正确运行)
var {A: a} = {A: 1};
console.log(a); // 1
现在我们有一个名为 'a' 的变量,其值为 1
所以我有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,它们共享同一个对象。为什么这个作业与我原来的作业不同?
忘了说我在 Firefox 16.0 上测试