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

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

為什么會引起循環引用和全局污染

文中說的把data直接放在元素對象上會引起虛幻引用和全局污染,這個不太好理解,請哪位大神幫忙舉個例子解釋一下?謝謝!

正在回答

2 回答

我理解的是,整個dom也屬于全局,多個js代碼對同一dom節點添加/修改數據可能會互相影響,也就是污染了dom元素這一個全局變量.

循環引用,這里用事件對象的回調函數為例子(取自《javascript高級程序設計》第三版 7.2.3):

function?assignHandler()?{
??var?ele?=?document.getElementById('someEle');
??ele.onclick?=?function()?{
????alert(ele.id);
??}
}

這里ele.onclick引用了匿名函數,匿名函數又引用了ele(這里匿名函數實際引用assignHandler的活動對象,assignHandler的活動對象引用ele).因此,這里ele的引用數至少為1.

在IE9之前,由于dom采用的是引用計數的垃圾回收機制,因此這種情況下會導致其占用的內存無法回收,造成內存泄漏.

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

冒泡?

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

舉報

0/150
提交
取消

為什么會引起循環引用和全局污染

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

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

幫助反饋 APP下載

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

公眾號

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