搜尋

首頁  >  問答  >  主體

javascript - 為什麼給物件賦值成null了還會觸發事件?

例如下面這段程式碼

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

滿天的星座滿天的星座2753 天前584

全部回覆(4)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-19 10:35:15

    這裡的box只是一個變數

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

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

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:35:15

    雷雷

    回覆
    0
  • PHPz

    PHPz2017-05-19 10:35:15

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

    box.onclick = null;

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

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

    回覆
    0
  • 阿神

    阿神2017-05-19 10:35:15

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

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

    回覆
    0
  • 取消回覆