suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Warum wird ein Ereignis ausgelöst, wenn einem Objekt Null zugewiesen wird?

Zum Beispiel der folgende Code

var box = document.getElementById("box");
box.onclick = function(){
    console.log(111);
};
box = null;

Warum kann ich immer noch das Klickereignis der Box auslösen, wenn ich den Wert der Box auf Null weise? Was ich denke ist, dass die Verarbeitung des Ereignisses nichts mit der Box selbst zu tun hat, obwohl der Box später Null zugewiesen wird, da das Ereignis hinzugefügt wurde? Ich weiß nicht, ob das richtig ist. Warum kann ich box.onclick einfach null zuweisen? Ich hoffe, ihr könnt mir eine vernünftige Antwort geben, danke.

滿天的星座滿天的星座2755 Tage vor587

Antworte allen(4)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-19 10:35:15

    这里的box只是一个变量

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

    这里是将"box"元素的引用赋值给box,你下面的box = null是把null赋值给box对"box"元素并没有影响,建议看一下这篇文章
    可能我说的不是很清楚,见谅。

    Antwort
    0
  • 过去多啦不再A梦

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

    var box = document.getElementById("box");//生成一个box指针, 指向element
    box.onclick //element绑定点击事件
    box = null; // 清空指针 与element无关

    Antwort
    0
  • PHPz

    PHPz2017-05-19 10:35:15

    你只是把"小明"这个外号给了另一个人, 但你对原来的"小明"所造成的伤害还在...
    作为一个老司机, 我必须纠正你的洗白步骤:
    1, 首先掩盖你的罪恶

    box.onclick = null;

    2, 看情况要不要毁尸灭迹

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

    Antwort
    0
  • 阿神

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

    实际上box只是指向DOM元素的一个“指针”。

    你对box的属性做操作会影响DOM元素,但是当你把它赋值为null时,只是把box的指向改变了,不表示把DOM元素清除了。

    Antwort
    0
  • StornierenAntwort