Adakah Kelas Tanpa Nama Serta-merta dalam ES6 Idea Buruk?

Susan Sarandon
Lepaskan: 2024-10-20 11:18:02
asal
190 orang telah melayarinya

Are Immediately Instantiated Anonymous Classes in ES6 a Bad Idea?

Kelas Tanpa Nama Serta-merta: Resipi untuk Bencana

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.

Apa Yang Berlaku Di Sebalik Tabir?

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.

Kelemahan Instalasi Segera

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.

Elak Pada Semua Kos

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; }
};
Salin selepas log masuk

Kaveat: Pertimbangan Merentas Bahasa

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!