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;
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;
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} });
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!