JavaScript中两个对象的区别是什么?
what is difference between two object in JavaScript
谁能帮助我了解在JavaScript中以两种方式创建的obj1
和obj2
的差异?它们在控制台中看起来是一样的。
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"}
虽然对象的内容是相同的,但是有对两个独立对象的引用,这就是==和===都失败的原因(它们检查的是引用而不是内容)。
正如ABucin所说,javascript检查引用,如果你仍然想检查两个json是否相等,你可以尝试使用
JSON.stringify(obj1) === JSON.stringify(obj2)
或检查每个键(稍微复杂一些,但在键的顺序不同的情况下更有效)。
试着读一下:
比较两个json对象
您正在使用obj1创建对象,而在obj2中您将JSON对象解析为对象。由于两个对象是不同的(不同的引用),它们被视为不同的
你可以在这里了解更多信息
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- JavaScript中的函数和对象之间没有区别吗?
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- 这两种不同的创建对象文字的方法有什么区别
- 快递之间的区别.路由器() vs 多个 express() 对象
- 定义这些对象有什么区别
- 在 JavaScript 中的对象内分配柯里函数时,这和 self 之间有什么区别吗?
- javascript 的 Set 和普通的普通对象有什么区别
- 什么's对象文字中带引号和不带引号的键之间的区别
- javascript中对象扩充和类扩充的区别
- 在window.onload之前/之后创建对象之间的区别
- 使用构造函数创建对象和返回对象有区别吗
- 用两种方式保存对象,有什么区别
- JavaScript中带有构造函数的对象和闭包之间的区别
- 使用原型和对象文字表示法创建对象之间的区别
- obj={value:1} 和 obj.value=1 之间的区别,用于重写对象
- 按键名调用 JSON 对象的方法有什么区别
- 在 JavaScript 中,构造函数和作为构造函数调用的返回对象的函数之间有什么区别
- 在 javascript 中创建类以创建对象与在 Java 中创建类和对象之间的区别