Rumah >hujung hadapan web >tutorial js >Adakah Kelas Tanpa Nama Serta-merta dalam ES6 Idea Buruk?
Dalam ES6, keupayaan untuk mentakrifkan kelas tanpa nama menyediakan gula sintaksis untuk pengisytiharan kelas. Walaupun mudah, instantiasi segera kelas sedemikian boleh membawa kepada banyak isu.
Apabila kelas tanpa nama diwujudkan serta-merta, JavaScript mencipta fungsi pembina baharu dan objek prototaip secara dinamik. Setiap penilaian ungkapan menghasilkan fungsi pembina dan prototaip yang berbeza.
Amalan ini mempunyai beberapa kelemahan ketara:
Kurang Kebolehgunaan Semula:
Tidak seperti kelas yang dinamakan, kelas tanpa nama serta-merta mencipta pembina dan prototaip baharu setiap kali. Ini bermakna berbilang kejadian tidak akan berkongsi prototaip yang sama, kehilangan faedah warisan kelas dan perkongsian prototaip.
Singleton Fallacy:
Jika niat di sebalik penggunaan corak ini adalah untuk mencipta objek tunggal, ia gagal. Fungsi pembina kekal boleh diakses, membenarkan penciptaan berbilang kejadian menggunakan entity.constructor baharu.
Konsensus adalah jelas: kelas tanpa nama yang dibuat serta-merta harus dielakkan. Literal objek ringkas menyediakan alternatif yang lebih cekap dan mudah:
var entity = { name: 'Foo', getName: function() { return this.name; } };
Walaupun corak kelas baharu boleh diterima dalam beberapa bahasa lain, ia berkelakuan berbeza dalam JavaScript . Sifat dinamik penciptaan kelas JavaScript menghalang kelebihan bahasa ini.
Atas ialah kandungan terperinci Adakah Kelas Tanpa Nama Serta-merta dalam ES6 Idea Buruk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!