文字对象方法:
var objectA = {};
var objectB = {};
对比
var objectA = objectB = {};
构造对象方法:
var objectA = new Object();
var objectB = new Object();
对比
var objectA = objectB = new Object();
最佳答案
其实,当你这样做的时候
var objectA = {};
var objectB = {};
或
var objectA = new Object();
var objectB = new Object();
您正在创建两个不同的 JavaScript 对象,它们由 objectA
和 objectB
引用。但是当你这样做的时候
var objectA = objectB = {};
或
var objectA = objectB = new Object();
您实际上只创建了一个对象,并使 objectA
和 objectB
引用同一个对象。
你可以通过检查两个对象是否相同来确认这一点,就像这样
var objectA = {}, objectB = {};
console.log(objectA === objectB);
// false
var objectC = objectD = {};
console.log(objectC === objectD);
// true
注意:
var objectC = objectD = {};
会这样评价
var objectC = (objectD = {});
这就是为什么 objectC
和 objectD
引用同一个对象。
重要: As dfsq mentions in the comment ,在最后一个例子中,objectD
将被泄露到全局范围。因此,请避免使用此模式。
关于javascript - 多个空白变量声明有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887561/