Apa itu Super () dalam JavaScript?
Memahami super()
dalam JavaScript: Panduan ini meneroka kata kunci super()
dalam JavaScript, yang memberi tumpuan kepada penggunaannya dalam mewarisi dari kelas induk. Walaupun sistem kelas JavaScript dibina di atas warisan prototip, super()
menyediakan sintaks warisan berasaskan kelas yang biasa.
Kata kunci super()
tidak unik kepada JavaScript; Bahasa seperti Java dan Python menggunakannya sama seperti kelas induk rujukan. Walau bagaimanapun, pendekatan JavaScript berbeza; Ia memanfaatkan warisan prototipnya untuk meniru tingkah laku warisan berasaskan kelas. Dokumentasi Mozilla menekankan bahawa kelas JavaScript adalah "gula sintaksis" berbanding warisan berasaskan prototaip yang sedia ada.
Mari kita gambarkan dengan contoh kod. Pertimbangkan dua kelas: Fish
(ibu bapa) dan Trout
(anak). Fish
mempunyai sifat habitat
dan length
. Trout
memanjangkan Fish
, menambah variety
harta.
Ikan kelas { pembina (habitat, panjang) { this.habitat = habitat; this.length = panjang; } } Trout kelas memanjangkan ikan { Pembina (habitat, panjang, pelbagai) { super (habitat, panjang); // Panggil Pembina Ibu Bapa this.variety = variety; } }
Dalam pembina Trout
, super(habitat, length)
adalah penting. Ia memanggil pembina Fish
, mewujudkan sifat habitat
dan length
dalam konteks objek Trout
. Menghilangkan super()
akan mengakibatkan ralat rujukan. Ini menunjukkan bagaimana super()
mengintegrasikan sifat kelas induk ke dalam kelas kanak -kanak.
Yang penting, JavaScript menawarkan fleksibiliti. Walaupun anda mesti memanggil super()
untuk mengelakkan kesilapan, anda tidak perlu lulus parameter yang tepat yang dijangkakan oleh pembina ibu bapa. Anda boleh menetapkan sifat secara langsung:
Trout kelas memanjangkan ikan { Pembina (habitat, panjang, pelbagai) { super (); this.habitat = habitat; this.length = panjang; this.variety = variety; } }
Pendekatan ini, sementara kurang jelas, mencapai hasil yang sama. super()
tanpa parameter mencipta sifat tetapi meninggalkan mereka tidak ditentukan, yang membolehkan tugasan berikutnya. Ini menyoroti perbezaan utama dari model warisan kelas yang benar seperti Java.
super()
juga melangkaui pembina. Ia boleh mengakses kaedah kelas induk. Mari tambahkan kaedah renderProperties
untuk memaparkan sifat:
Ikan kelas { RenderProperties (elemen) { element.innerHtml = json.stringify (ini); } } Trout kelas memanjangkan ikan { RenderPropertiesWithSuper (elemen) { element.classname = "Green"; Super.RenderProperties (elemen); // Kaedah ibu bapa } }
Trout
's renderPropertiesWithSuper
menggunakan semula renderProperties
Fish
, menambah fungsi tambahan. Penamaan ( renderPropertiesWithSuper
) adalah sengaja; Ia mengelakkan menimpa kaedah ibu bapa, yang membolehkan akses kepada kedua -duanya.
Adalah penting untuk diperhatikan bahawa sintaks berasaskan kelas ini pada dasarnya adalah kemudahan. Fungsi yang sama dapat dicapai tanpa extends
dan super()
, tetapi dengan kod yang lebih kompleks yang melibatkan manipulasi prototaip langsung. Ini memperkuat konsep "gula sintaksis".
Kesimpulannya, kelas JavaScript, semasa menggunakan warisan prototip, menawarkan struktur seperti kelas dengan super()
. Memahami nuansa ini, bersama -sama dengan asas -asas warisan prototip, adalah kunci untuk menggunakan kelas dengan berkesan dalam JavaScript, terutamanya dalam kerangka seperti React.
Atas ialah kandungan terperinci Apa itu Super () dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Sekiranya anda baru -baru ini mula bekerja dengan GraphQL, atau mengkaji semula kebaikan dan keburukannya, anda tidak akan ragu -ragu mendengar perkara seperti "Graphql tidak menyokong caching" atau

Dengan pendakian harga bitcoin baru -baru ini lebih dari 20k $ USD, dan baru -baru ini melanggar 30k, saya fikir ia patut mengambil menyelam yang mendalam kembali ke dalam mewujudkan Ethereum

Tidak kira tahap tahap anda sebagai pemaju, tugas yang kami selesaikan -sama ada besar atau kecil -membuat kesan besar dalam pertumbuhan peribadi dan profesional kami.

Ia ' s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That ' s seperti ini.

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis
