我终于好奇地发现为什么javascript会运用它的巫术魔法来学习为什么不能创建所有对象引用.
举个例子:
var a, b, c, d;
a = 100; b = a;
c = {}; d = c;
b = 10; d.e = 'f';
console.log(a, b); // outputs 100, 10
console.log(c, d); // outputs object => e = 'f', object => e = 'f'
Run Code Online (Sandbox Code Playgroud)
如果在JavaScript中所有变量都是对象,那么是什么让用例c和d显式转换为一个Object如此不同不是定义a和b作为Number?或者,为什么会c和d彼此联系,而不是a和b?
JavaScript中的所有变量都不是对象.也有本地类型.
c而d在没有链接到彼此.它们指向同一个对象引用.如果您要重新分配d其他内容,则不会影响c.
var c = {};
var d = c;
d = { foo: "bar" };
c === d // false
Run Code Online (Sandbox Code Playgroud)
但是,如果你要修改的对象被引用c或者d,它会修改同一个对象,因为c和d都指的是同一个对象在你的榜样.
| 归档时间: |
|
| 查看次数: |
1847 次 |
| 最近记录: |