Penciptaan Objek: Sintaks Pembina lwn Notasi Literal Objek
Dalam JavaScript, terdapat dua cara biasa untuk mencipta objek: menggunakan berasaskan pembina sintaks dan objek literal tatatanda.
Sintaks Berasaskan Pembina
Sintaks berasaskan pembina melibatkan penggunaan kata kunci baharu untuk mencipta contoh baharu objek :
person = new Object()
Objek Literal Notasi
Notasi literal objek, sebaliknya, menggunakan pendakap kerinting untuk mentakrifkan objek:
person = { property1 : "Hello" };
Persamaan
Untuk objek ringkas tanpa kaedah, kedua-dua sintaks kelihatan mencipta objek dengan sifat yang serupa dan tingkah laku.
Perbezaan
Walau bagaimanapun, apabila menyentuh objek dengan kaedah, terdapat perbezaan yang ketara antara kedua-dua pendekatan ini.
Definisi Kaedah
Dalam sintaks berasaskan pembina, kaedah ditakrifkan sebagai sifat bagi contoh objek itu sendiri:
function Obj(prop) { this.p = prop; } Obj.prototype.sayHello = function() {alert(this.p);};
Sebaliknya, tatatanda literal objek membolehkan anda mentakrifkan kaedah sebagai sifat yang dinamakan objek:
function Obj(prop) { return { p : prop, sayHello : function(){ alert(this.p); }, }; }
Kaedah Penggunaan
Apabila memanggil kaedah pada objek yang dibuat dengan sintaks berasaskan pembina, ia mengakses salinan kaedah yang disimpan dalam tika itu sendiri. Ini boleh membawa kepada overhed memori jika anda mempunyai banyak objek dengan kaedah yang sama.
Objek yang dibuat dengan tatatanda literal objek, bagaimanapun, berkongsi kaedah yang ditakrifkan dalam sifat prototaip pembina. Ini mengurangkan penggunaan memori dengan hanya mengekalkan satu salinan kaedah yang dikongsi antara semua kejadian.
Kesimpulan
Walaupun kedua-dua sintaks berasaskan pembina dan notasi literal objek boleh mencipta objek , tingkah laku mereka berbeza apabila berurusan dengan kaedah. Untuk objek dengan beberapa kaedah dan tiada kekangan memori, sama ada sintaks boleh digunakan. Walau bagaimanapun, untuk objek dengan banyak kaedah atau dalam senario sensitif memori, notasi literal objek lebih disukai kerana kecekapannya yang dipertingkatkan.
Atas ialah kandungan terperinci Sintaks Berasaskan Pembina vs. Notasi Literal Objek: Mana yang Terbaik untuk Mencipta Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!