例如下面這段程式碼
var box = document.getElementById("box");
box.onclick = function(){
console.log(111);
};
box = null;
為什麼我將box賦值為null了,還可以觸發(fā)box的click事件?我是這樣想的雖然後面將box賦值為null了,但是由於事件已經(jīng)被添加上去了,而事件的處理和box本身無(wú)關(guān)?不知道這樣想對(duì)不對(duì),為什麼將box.onclick賦值為null就可以,onclick不是屬於box的嗎? ,也望各位大牛能給個(gè)合理的解答,謝謝。
這裡的box只是一個(gè)變數(shù)
var box = document.getElementById("box");
這裡是將"box"元素的引用賦值給box,你下面的box = null
是把null
賦值給box對(duì)"box"元素並沒(méi)有影響,建議看一下這篇文章
可能我說(shuō)的不是很清楚,見(jiàn)諒。
你只是把"小明"這個(gè)綽號(hào)給了另一個(gè)人, 但你對(duì)原來(lái)的"小明"所造成的傷害還在...
作為一個(gè)老司機(jī), 我必須糾正你的洗白步驟:
1 , 先掩蓋你的罪
box.onclick = null;
2, 看情況要不要?dú)茰幺E
box = null;
或
box.parentNode.removeChild(box);
其實(shí)box只是指向DOM元素的一個(gè)「指標(biāo)」。
你對(duì)box的屬性做操作會(huì)影響DOM元素,但是當(dāng)你把它賦值為null時(shí),只是把box的指向改變了,不表示把DOM元素清除了。