javascript - Mengapa peristiwa itu dicetuskan apabila memberikan null kepada objek?
滿天的星座
滿天的星座 2017-05-19 10:33:15
0
4
602

Sebagai contoh, kod berikut

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

Mengapa saya masih boleh mencetuskan peristiwa klik pada kotak apabila saya menetapkan nilai kotak kepada null? Apa yang saya fikir ialah walaupun kotak ditugaskan kepada batal kemudian, memandangkan acara telah ditambah, pemprosesan acara tidak ada kaitan dengan kotak itu sendiri? Saya tidak tahu sama ada ini betul Mengapa saya hanya boleh menetapkan box.onclick kepada null Adakah onclick tidak termasuk dalam kotak? , saya harap anda semua dapat memberi saya jawapan yang munasabah, terima kasih.

滿天的星座
滿天的星座

membalas semua(4)
phpcn_u1582

Kotak di sini hanyalah pembolehubah

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

Berikut adalah memberikan rujukan elemen "kotak" kepada kotak box = null是把nullAnda memberikan nilai kepada kotak di bawah tidak memberi kesan kepada elemen "kotak" Adalah disyorkan untuk membaca artikel ini
Mungkin apa yang saya katakan tidak begitu jelas, maafkan saya.

过去多啦不再A梦
var box = document.getElementById("box");//生成一个box指针, 指向element
box.onclick //element绑定点击事件
box = null; // 清空指针 与element无关
PHPzhong

Anda baru sahaja memberi nama panggilan "Xiao Ming" kepada orang lain, tetapi kerosakan yang anda sebabkan pada "Xiao Ming" asal masih ada...
Sebagai pemandu berpengalaman, saya mesti membetulkan langkah pemutihan anda:
1 , penutup pertama naikkan dosamu

box.onclick = null;

2 Terpulang pada keadaan sama ada nak hancurkan badan atau tidak

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

Malah, kotak hanyalah "penunjuk" yang menunjuk kepada elemen DOM.

Operasi anda pada atribut kotak akan mempengaruhi elemen DOM, tetapi apabila anda menetapkannya kepada null, anda hanya menukar penunjuk kotak, tetapi ini tidak bermakna elemen DOM dikosongkan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan