Javascript 以不同方式构造的js对象之间的差异

Javascript 以不同方式构造的js对象之间的差异,javascript,Javascript,以这种方式创建的js对象之间有什么区别 var js = {}; js.first = "blah"; js.second = something; vs: 在chrome inspector中,我看不出有任何问题。我在将js变量(第一个示例)传递给socket.emit时遇到了问题,在第一种情况下,socket.emit为我提供了空对象,但在第二个示例中效果良好 我很困惑 参考资料:这两种创建新对象的方法绝对没有区别 第一个示例演示了如何动态地向现有对象添加新键和值 如果您尝试将它们与==进

以这种方式创建的js对象之间有什么区别

var js = {};
js.first = "blah";
js.second = something;
vs:

在chrome inspector中,我看不出有任何问题。我在将js变量(第一个示例)传递给socket.emit时遇到了问题,在第一种情况下,socket.emit为我提供了空对象,但在第二个示例中效果良好

我很困惑


参考资料:

这两种创建新对象的方法绝对没有区别

第一个示例演示了如何动态地向现有对象添加新键和值

如果您尝试将它们与==进行比较,您将得到false,但即使您以类似的方式创建两个对象,您也将得到false

var js = {
first : "blah",
second: something
}

var js2 = {
first : "blah",
second: something
}

js == js2 //false

所以,如果它给你的是空对象,那么它似乎是一些浏览器/节点错误。也许是解析器bug?很难说。但是没有实际区别

您是否在第二个代码片段中遗漏了一个
=
?您是否在设置
第一个
第二个
属性之前将
js
传递给套接字emit?@TedHopp console.dir()在引用的帖子中确认在将其传递给emit之前已设置了这两个属性。
var js = {
first : "blah",
second: something
}

var js2 = {
first : "blah",
second: something
}

js == js2 //false