Dalam JavaScript, Anda dapat menggunakan operator hapus untuk menghapus properti dalam suatu objek:
Salinan kode adalah sebagai berikut:
var t = {a: 42, b: 26};
console.log (t); // objek {a = 42, b = 26}
hapus ta;
console.log (t); // objek {b = 26}
Keterbatasan operasi penghapusan properti ini adalah bahwa operator hapus hanya dapat menghapus semua sifat objek itu sendiri, dan tidak dapat menghapus properti yang diwarisi dari objek prototipe. Jika Anda ingin menghapus properti di objek prototipe, Anda harus secara eksplisit mendapatkan objek prototipe dan melakukan operasi dalam objek prototipe:
Salinan kode adalah sebagai berikut:
var o = {x: 1, y: 2};
var a = objek.create (o);
AZ = 3;
console.log (a); // objek {z = 3, x = 1, y = 2}
hapus kapak; // tidak dapat menghapus properti yang diwariskan
console.log (a); // objek {z = 3, x = 1, y = 2}
hapus az; // dapat menghapus properti sendiri
console.log (a); // objek {x = 1, y = 2}
Hapus A .__ Proto __. X;
console.log (a); // objek {y = 2}
Jika properti dalam objek prototipe dihapus, semua objek yang diwarisi dari objek prototipe akan terpengaruh.
Untuk nilai pengembalian operasi DELETE, JavaScript mengikuti aturan berikut:
1. Jika operasi penghapusan berhasil, kembalikan true.
2. Jika operasi penghapusan tidak berpengaruh (misalnya, properti yang akan dihapus tidak ada), itu juga akan mengembalikan true.
3. Jika properti yang ingin Anda hapus memiliki properti False yang dapat dikonfigurasi, kesalahan TypeError akan dilaporkan dalam mode ketat, dan False akan dikembalikan dalam mode non-ketat.
Jika operator hapus bertindak sebagai properti dari objek global, maka dalam mode non-ketat, objek global dalam kode dapat dihilangkan:
Salinan kode adalah sebagai berikut:
this.c = 42;
hapus c; // sama dengan hapus this.c;
Perlu dicatat bahwa dalam mode yang ketat, metode penulisan di atas akan melempar kesalahan sintakser.