亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

對象的比較

對象用引用去比較而不是用值中“引用”是什么意思?

正在回答

2 回答

對象比較是指該命名下,他們對內存中存儲數據的比較;

舉個例子吧,直接聲明一個對象和構造一個對象,可能值是一樣的,但是內存中的數據肯定是不同的,原型也不同;因此是不同的。

兩個聲明對象比較的話,對內存中的數據也是兩套,比較也是不同的。

你把這個比較理解為“是否同一個”而不是“是否相同”

0 回復 有任何疑惑可以回復我~
#1

HoSalt 提問者

非常感謝!
2015-12-30 回復 有任何疑惑可以回復我~

創建對象的時候,會先開辟一個內存空間,然后用一個變量指向這個內存空間,實際上這個變量的值是這個內存空間的引用,可以理解成一個地址,比如說:var a = {}; b = a; 那么a 和 b 引用的是同一個地址,因為{}的內存空間是同一個,所以你對a或者b進行數據修改,同時會影響兩個的值,因為你實際上修改的是{}的值,本體都變了,引用當然會變,現在知道你問的引用時什么意思了嗎,引用就是這個內存的地址

再說個具體的,比如說:成都市成華區雙林路1號,這個地址是唯一的,你用無數個變量去接收這個地址,其實他就是同一個東西,當你修改其中一個變量,實際就是修改了這個唯一的東西,其他的變量值也就變了。

引申一下,所以為了避免這種情況,會用到克隆方法,至于怎么用,可以問度娘

3 回復 有任何疑惑可以回復我~
#1

桃太郎

那么可以理解為:對象的比較是引用的比較,引用指的是引用內存空間|引用內存地址。創建對象時,便創建一個內存空間|一個地址。兩個對象雖然值一樣,但引用的內存空間|地址不一樣。那么他們便是不相等的|便是不一樣的。
2016-09-24 回復 有任何疑惑可以回復我~
#2

chyco

var a = {x:1};b=a;a={x:2}; 后面修改a會對b造成影響?
2020-04-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript深入淺出
  • 參與學習       281094    人
  • 解答問題       1054    個

由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握

進入課程

對象的比較

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號