简体   繁体   English

JavaScript中两个对象之间的区别是什么

[英]what is difference between two object in JavaScript

Can anyone help me to understand the difference in obj1 and obj2 created in two ways in JavaScript? 谁能帮助我了解以JavaScript两种方式创建的obj1obj2的区别? They look the same in the console. 它们在控制台中看起来相同。

var obj1 = { 'name': 'blue', 'shade': 'dark'};
var obj2 = JSON.parse('{"name":"blue","shade":"dark"}');

because 因为

 (obj1 === obj2)  is false as 
 (obj1 == obj2) is false

while in javascript console show as 而在javascript控制台中显示为

Object {name: "blue", shade: "dark"}
Object {name: "blue", shade: "dark"}

尽管对象的内容相同,但是您具有对两个单独对象的引用,这就是为什么==和===都失败(它们检查引用是否为内容)。

As ABucin said, javascript checks for references, if you still want to check if two jsons are equal you could try using 正如ABucin所说,javascript检查引用,如果您仍然想检查两个json是否相等,则可以尝试使用

JSON.stringify(obj1) === JSON.stringify(obj2)

or check for every key (a bit more complicated but more efficient in the case that the keys are in different orders). 或检查每个键(如果键的顺序不同,则有点复杂,但效率更高)。

Try reading this: 尝试阅读以下内容:

Compare 2 json objects 比较2个json对象

you are creating an object with obj1 and in obj2 you parsing a JSON object into an object. 您正在使用obj1创建一个对象,在obj2中将一个JSON对象解析为一个对象。 Since both objects are different (different reference) they are treated as different 由于两个对象不同(参考不同),因此将它们视为不同

You can learn more on this over here 您可以在这里了解更多信息

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM