課程
/前端開發
/JavaScript
/JavaScript深入淺出
對象用引用去比較而不是用值中“引用”是什么意思?
2015-12-23
源自:JavaScript深入淺出 1-3
正在回答
對象比較是指該命名下,他們對內存中存儲數據的比較;
舉個例子吧,直接聲明一個對象和構造一個對象,可能值是一樣的,但是內存中的數據肯定是不同的,原型也不同;因此是不同的。
兩個聲明對象比較的話,對內存中的數據也是兩套,比較也是不同的。
你把這個比較理解為“是否同一個”而不是“是否相同”
HoSalt 提問者
創建對象的時候,會先開辟一個內存空間,然后用一個變量指向這個內存空間,實際上這個變量的值是這個內存空間的引用,可以理解成一個地址,比如說:var a = {}; b = a; 那么a 和 b 引用的是同一個地址,因為{}的內存空間是同一個,所以你對a或者b進行數據修改,同時會影響兩個的值,因為你實際上修改的是{}的值,本體都變了,引用當然會變,現在知道你問的引用時什么意思了嗎,引用就是這個內存的地址
再說個具體的,比如說:成都市成華區雙林路1號,這個地址是唯一的,你用無數個變量去接收這個地址,其實他就是同一個東西,當你修改其中一個變量,實際就是修改了這個唯一的東西,其他的變量值也就變了。
引申一下,所以為了避免這種情況,會用到克隆方法,至于怎么用,可以問度娘
桃太郎
chyco
舉報
由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握
1 回答對象是值比較,對象是引用比較?
2 回答對象比較的問題
2 回答如何比較兩個對象是否相同?
1 回答比較直接的寫法
3 回答關于比較boolean和number
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-12-23
對象比較是指該命名下,他們對內存中存儲數據的比較;
舉個例子吧,直接聲明一個對象和構造一個對象,可能值是一樣的,但是內存中的數據肯定是不同的,原型也不同;因此是不同的。
兩個聲明對象比較的話,對內存中的數據也是兩套,比較也是不同的。
你把這個比較理解為“是否同一個”而不是“是否相同”
2016-06-15
創建對象的時候,會先開辟一個內存空間,然后用一個變量指向這個內存空間,實際上這個變量的值是這個內存空間的引用,可以理解成一個地址,比如說:var a = {}; b = a; 那么a 和 b 引用的是同一個地址,因為{}的內存空間是同一個,所以你對a或者b進行數據修改,同時會影響兩個的值,因為你實際上修改的是{}的值,本體都變了,引用當然會變,現在知道你問的引用時什么意思了嗎,引用就是這個內存的地址
再說個具體的,比如說:成都市成華區雙林路1號,這個地址是唯一的,你用無數個變量去接收這個地址,其實他就是同一個東西,當你修改其中一個變量,實際就是修改了這個唯一的東西,其他的變量值也就變了。
引申一下,所以為了避免這種情況,會用到克隆方法,至于怎么用,可以問度娘