【问题标题】:what is difference between two object in JavaScriptJavaScript中两个对象有什么区别
【发布时间】:2014-09-28 07:42:18
【问题描述】:

谁能帮我理解在 JavaScript 中以两种方式创建的 obj1obj2 的区别?它们在控制台中看起来相同。

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

因为

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

在 javascript 控制台中显示为

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

【问题讨论】:

标签: javascript object difference


【解决方案1】:

虽然对象内容相同,但您引用了两个单独的对象,这就是 == 和 === 都失败的原因(它们检查引用而不是内容)。

【讨论】:

    【解决方案2】:

    正如 ABucin 所说,javascript 检查引用,如果您仍想检查两个 json 是否相等,您可以尝试使用

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

    或检查每个键(在键处于不同顺序的情况下会更复杂但更有效)。

    尝试阅读:

    Compare 2 json objects

    【讨论】:

    • 不要使用第一种方法,不能保证对象属性的顺序。
    【解决方案3】:

    您正在使用 obj1 创建一个对象,而在 obj2 中您将一个 JSON 对象解析为一个对象。由于两个对象不同(不同的引用),因此它们被视为不同

    您可以通过here了解更多信息

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 2012-04-01
      • 2011-02-20
      • 1970-01-01
      • 2020-02-06
      相关资源
      最近更新 更多