課程
/前端開發
/jQuery
/jQuery源碼解析(架構與依賴模塊)
copy = options[name];
//覆蓋拷貝
target[name] = copy;
為什么不能直接寫成 target[name]=options[name]
2016-08-01
源自:jQuery源碼解析(架構與依賴模塊) 2-8
正在回答
以下是我的理解,不知道對不對
貌似是深淺拷貝的問題
copy = options[name]其實新建了一個與?options[name]相同內容的對象,這樣使用target[name]時候就不會影響到options[name]的值,是深拷貝;
target[name]=options[name]的話則是淺拷貝,target[name]其實是options[name]的引用,target[name]改變,options[name]也會隨著改變。
杰楓 提問者
慕無忌2114720
和target[name] = options[name]沒有區別,這里的copy沒任何作用。
估計老師是參考jquery源代碼寫的,但源代碼中copy變量還做了其他操作。
chen87870098
舉報
由淺入深地剖析jQuery庫的設計與實現,揭開框架背后的秘密
1 回答memory的使用場景和意義?
1 回答數據是這樣存的嗎?
2 回答選擇器選擇ID不是只有一個的嗎?用[0]和不用[0]一樣呀,有什么意義嗎
3 回答$沒定義啊
4 回答我有一個疑問,把$賦值給_$,那么 $就不存在了嗎
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-02
以下是我的理解,不知道對不對
貌似是深淺拷貝的問題
copy = options[name]其實新建了一個與?options[name]相同內容的對象,這樣使用target[name]時候就不會影響到options[name]的值,是深拷貝;
target[name]=options[name]的話則是淺拷貝,target[name]其實是options[name]的引用,target[name]改變,options[name]也會隨著改變。
2016-08-12
和target[name] = options[name]沒有區別,這里的copy沒任何作用。
估計老師是參考jquery源代碼寫的,但源代碼中copy變量還做了其他操作。