例如下面這段程式碼
var box = document.getElementById("box");
box.onclick = function(){
console.log(111);
};
box = null;
為什麼我將box賦值為null了,還可以觸發box的click事件?我是這樣想的雖然後面將box賦值為null了,但是由於事件已經被添加上去了,而事件的處理和box本身無關?不知道這樣想對不對,為什麼將box.onclick賦值為null就可以,onclick不是屬於box的嗎? ,也望各位大牛能給個合理的解答,謝謝。
phpcn_u15822017-05-19 10:35:15
這裡的box只是一個變數
var box = document.getElementById("box");
這裡是將"box"元素的引用賦值給box,你下面的box = null
是把null
賦值給box對"box"元素並沒有影響,建議看一下這篇文章
可能我說的不是很清楚,見諒。
PHPz2017-05-19 10:35:15
你只是把"小明"這個綽號給了另一個人, 但你對原來的"小明"所造成的傷害還在...
作為一個老司機, 我必須糾正你的洗白步驟:
1 , 先掩蓋你的罪
box.onclick = null;
2, 看情況要不要毀屍滅跡
box = null;
或
box.parentNode.removeChild(box);
阿神2017-05-19 10:35:15
其實box只是指向DOM元素的一個「指標」。
你對box的屬性做操作會影響DOM元素,但是當你把它賦值為null時,只是把box的指向改變了,不表示把DOM元素清除了。