搜索

首页  >  问答  >  正文

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的吗?,还望各位大牛能给个合理的解答,谢谢。

滿天的星座滿天的星座2845 天前630

全部回复(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
  • 取消回复