javascript - 為什麼給物件賦值成null了還會觸發事件?
滿天的星座
滿天的星座 2017-05-19 10:33:15
0
4
600

例如下面這段程式碼

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的嗎? ,也望各位大牛能給個合理的解答,謝謝。

滿天的星座
滿天的星座

全部回覆(4)
phpcn_u1582

這裡的box只是一個變數

var box = document.getElementById("box");

這裡是將"box"元素的引用賦值給box,你下面的box = null是把null賦值給box對"box"元素並沒有影響,建議看一下這篇文章
可能我說的不是很清楚,見諒。

过去多啦不再A梦

雷雷

PHPzhong

你只是把"小明"這個綽號給了另一個人, 但你對原來的"小明"所造成的傷害還在...
作為一個老司機, 我必須糾正你的洗白步驟:
1 , 先掩蓋你的罪

box.onclick = null;

2, 看情況要不要毀屍滅跡

box = null;
或
box.parentNode.removeChild(box);
阿神

其實box只是指向DOM元素的一個「指標」。

你對box的屬性做操作會影響DOM元素,但是當你把它賦值為null時,只是把box的指向改變了,不表示把DOM元素清除了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板