Rumah > hujung hadapan web > tutorial js > Bagaimanakah Kata Kunci `baru` Memberi Impak kepada Pewarisan Objek dalam JavaScript?

Bagaimanakah Kata Kunci `baru` Memberi Impak kepada Pewarisan Objek dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-21 14:49:09
asal
170 orang telah melayarinya

How Does the `new` Keyword Impact Object Inheritance in JavaScript?

Memahami Kata Kunci 'baru' dalam Pewarisan Objek

Apabila mencipta warisan antara dua pembina objek, kata kunci 'baharu' memainkan peranan penting . Mari kita terokai tujuannya dalam konteks kod berikut:

WeatherWidget.prototype = new Widget;
Salin selepas log masuk

Di sini, objektifnya adalah untuk melanjutkan pembina Widget dengan pembina WeatherWidget baharu. Dengan menggunakan kata kunci 'baharu', kami menggunakan Widget sebagai pembina dengan berkesan dan memberikan nilai pulangannya kepada sifat prototaip WeatherWidget.

Kesan Meninggalkan 'baharu'

Jika kita meninggalkan kata kunci 'baharu' dalam kod, hasilnya akan berbeza. Tanpa 'baru', Widget tidak akan dipanggil sebagai pembina melainkan senarai hujah telah ditambahkan. Tambahan pula, memanggil Widget dengan cara itu mungkin tidak boleh dilakukan dalam kod mod yang ketat, kerana rujukan 'ini' dalam pembina mungkin terikat pada objek global jika pelaksanaannya mematuhi ECMAScript Ed. 5.x.

Potensi Masalah dengan Menggunakan 'baharu'

Walaupun menggunakan 'baharu' membolehkan kita mencipta warisan, ia juga boleh mempunyai kelemahan. Contohnya, semua tika WeatherWidget akan mewarisi daripada tika Widget yang sama. Ini bermakna bahawa sebarang nilai harta yang diwarisi daripada tika Widget akan dikongsi antara semua tika WeatherWidget.

Pendekatan Warisan Alternatif

Cara yang lebih sesuai untuk melaksanakan warisan berasaskan kelas dalam bahasa berasaskan prototaip ialah menggunakan pendekatan berikut:

function Dummy () {}
Dummy.prototype = Widget.prototype;
WeatherWidget.prototype = new Dummy();
WeatherWidget.prototype.constructor = WeatherWidget;
Salin selepas log masuk

Pendekatan ini memastikan kejadian WeatherWidget mewarisi sifat melalui rantaian prototaip tanpa berkongsi nilai harta sesama mereka. Selain itu, sifat 'pembina' ditetapkan dengan betul, supaya setiap kejadian WeatherWidget menghala kepada pembina yang betul.

ECMAScript 5 dan Kemudian

Dalam ECMAScript 5 dan lebih baharu, sintaks berikut boleh digunakan untuk mencipta warisan:

WeatherWidget.prototype = Object.create(Widget.prototype, {
  constructor: {value: WeatherWidget}
});
Salin selepas log masuk

Sintaks ini mempunyai kelebihan menjadikan sifat 'pembina' yang terhasil tidak boleh ditulis, tidak boleh dikira dan tidak boleh dikonfigurasikan.

Kesimpulannya, kata kunci 'baharu' dalam warisan objek berfungsi untuk tujuan tertentu, tetapi penggunaannya harus berhati-hati untuk mengelakkan masalah yang berpotensi. Pendekatan alternatif untuk pewarisan tersedia yang memberikan lebih fleksibiliti dan kawalan.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `baru` Memberi Impak kepada Pewarisan Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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