簡體   English   中英

JavaScript中兩個對象之間的區別是什么

[英]what is difference between two object in JavaScript

誰能幫助我了解以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"}

盡管對象的內容相同,但是您具有對兩個單獨對象的引用,這就是為什么==和===都失敗(它們檢查引用是否為內容)。

正如ABucin所說,javascript檢查引用,如果您仍然想檢查兩個json是否相等,則可以嘗試使用

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

或檢查每個鍵(如果鍵的順序不同,則有點復雜,但效率更高)。

嘗試閱讀以下內容:

比較2個json對象

您正在使用obj1創建一個對象,在obj2中將一個JSON對象解析為一個對象。 由於兩個對象不同(參考不同),因此將它們視為不同

您可以在這里了解更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM