Saya agak bingung dengan deleteoperator JavaScript . Ambil bagian kode berikut:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
Setelah potongan kode ini dieksekusi, objadalah null, tetapi foomasih mengacu pada objek persis seperti obj. Saya menduga objek ini adalah objek yang sama dengan yang fooditunjukkan.
Ini membingungkan saya, karena saya berharap tulisan itu delete objmenghapus objek yang objmenunjuk ke dalam memori — bukan hanya variabel obj.
Apakah ini karena JavaScript's Garbage Collector bekerja dengan basis retain / release, sehingga jika saya tidak memiliki variabel lain yang menunjuk ke objek, itu akan dihapus dari memori?
(Omong-omong, pengujian saya dilakukan di Safari 4.)
var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;tidak dihapus periksa objhapus penggunaan: delete obj.helloTextdan kemudian centangfoo now foo is an empty object
deletebukan untuk menghapus objek dalam javascript. deleteDigunakan untuk menghapus kunci objek. Dalam kasus Anda var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;, objek tidak dihapus. Centang obj. Selanjutnya, jalankan delete obj.helloTextdan Anda dapat melihat bahwa foosekarang menunjuk ke kosong objek. "" "