Rumah >hujung hadapan web >tutorial js >Mengesyorkan cara terbaik untuk melaksanakan warisan dalam JavaScript

Mengesyorkan cara terbaik untuk melaksanakan warisan dalam JavaScript

PHPz
PHPzasal
2016-05-16 16:31:361213semak imbas

Bab ini memperkenalkan cara terbaik untuk melaksanakan pewarisan JavaScript menggunakan kaedah panggilan praktikal digabungkan dengan kaedah rantaian prototaip Ia sangat praktikal dan rakan yang memerlukan boleh merujuknya.

Cara paling mudah untuk melaksanakan pewarisan JavaScript ialah kaedah panggilan (atau gunakan kaedah) dan kaedah rantai prototaip, tetapi kedua-dua kaedah mempunyai kelemahan, dan campurannya ialah cara yang baik untuk melaksanakan pewarisan. Berikut ialah contoh:

function Animal(age){
    this.age = age;
}
Animal.prototype.sayAge = function(){
    window.alert("My age is "+this.age+"!");
};
function Dog(age,name){
    Animal.call(this,age);
    this.name = name;
}
Dog.prototype = new Animal();
Dog.prototype.sayName = function(){
    window.alert("I am a "+this.name+"!");
};
var dog = new Dog(15,"dog");
dog.sayName();
dog.sayAge();

Untuk Haiwan kelas, ia mempunyai umur atribut medan dan atribut fungsi sayAge Kaedah sayAge ditakrifkan dalam cara prototaip. Kelas Anjing mesti mewarisi Haiwan, dan atribut medannya termasuk nama sebagai tambahan kepada umur Melalui Animal.call(this,age);, Anjing boleh mewarisi umur atribut medan Haiwan dan memulakannya. Parameter pertama kaedah panggilan ialah penunjuk ini bagi kelas yang diwarisi, dan parameter kedua ialah parameter pembina kelas Haiwan. Sebenarnya, pewarisan boleh dicapai hanya melalui kaedah panggilan, tetapi satu-satunya keperluan ialah atribut fungsi kelas induk mesti ditakrifkan dalam pembina, yang tidak sesuai untuk atribut fungsi di sini ditakrifkan menggunakan kaedah prototaip ( menggunakan kaedah prototaip untuk menentukan sifat Fungsi adalah lebih intuitif daripada mentakrifkannya dalam pembina). Untuk mewarisi atribut fungsi yang ditakrifkan dalam mod prototaip Animal, pernyataan yang diperlukan ialah "Dog.prototype = new Animal();". Fungsi sayName() dalam kelas Dog ialah atribut fungsinya sendiri.

Selain cara paling klasik untuk melaksanakan warisan ini, terdapat beberapa perpustakaan percuma yang tersedia pada masa ini. Tetapi memikirkan semua jenis perpustakaan adalah sangat menggembirakan. Mari kita mengkajinya apabila kita mempunyai masa dan keperluan!

Kenyataan:
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