Menyelidiki Penciptaan Objek: Membandingkan Literal Objek dan Sintaks Pembina
Pilihan antara menggunakan sintaks Object() baharu dan notasi literal objek untuk mencipta objek dalam JavaScript boleh mengelirukan, tetapi memahami perbezaan halus antara mereka adalah penting.
Sintaks Literal Objek lwn. Pembina
Tersurat objek menggunakan pendakap kerinting ({}) untuk melampirkan pasangan nilai kunci, manakala sintaks pembina menggunakan kata kunci baharu diikuti oleh fungsi pembina Object().
Setara untuk Mudah Objek
Untuk objek ringkas tanpa kaedah, kedua-dua notasi menghasilkan hasil yang setara. Sebagai contoh, kedua-dua objek ini adalah sama dari segi fungsi:
person = new Object(); person = { property1: "Hello" };
Penggunaan Kaedah: Perbezaan Utama
Perbezaan sebenar timbul apabila bekerja dengan objek yang merangkumi kaedah. Literal objek mengandungi kaedah dalam takrifannya, manakala sintaks pembina menggunakan corak prototaip untuk mentakrifkan kaedah dikongsi.
Contoh Literal Objek:
function Obj(prop) { return { p: prop, sayHello: function() { console.log(this.p); }, }; }
Dalam kes ini, setiap contoh objek (cth., foo = new Obj("hello")) merangkum salinan sayHello kaedah.
Contoh Sintaks Pembina:
function Obj(prop) { this.p = prop; } Obj.prototype.sayHello = function() { console.log(this.p); };
Di sini, kaedah sayHello ditakrifkan dalam prototaip objek dan dikongsi antara semua kejadian (mis., foo = baru Obj("hello")).
Memori Implikasi
Kelebihan utama corak prototaip yang digunakan dalam sintaks pembina ialah kecekapan ingatan. Untuk objek dengan banyak kaedah atau banyak contoh, notasi literal boleh membawa kepada penggunaan memori yang ketara.
Kesimpulan
Walaupun kedua-dua literal objek dan sintaks pembina boleh mencipta objek dalam JavaScript , sintaks pembina dengan prototaip biasanya diutamakan dalam senario di mana pengoptimuman memori atau kebolehgunaan semula kod menjadi kebimbangan. Untuk objek ringkas tanpa kaedah, literal objek mungkin pilihan yang lebih ringkas dan mudah.
Atas ialah kandungan terperinci Penciptaan Objek dalam JavaScript: Object Literals vs. Constructor Syntax - Bilakah Anda Harus Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!