Rumah >hujung hadapan web >tutorial js >Analisis Perbezaan dan Aplikasi Prototaip dan Rantaian Prototaip

Analisis Perbezaan dan Aplikasi Prototaip dan Rantaian Prototaip

PHPz
PHPzasal
2024-01-10 11:47:11632semak imbas

Analisis Perbezaan dan Aplikasi Prototaip dan Rantaian Prototaip

Memahami perbezaan dan aplikasi prototaip dan rantaian prototaip memerlukan contoh kod khusus

Dalam JavaScript, prototaip (Prototaip) dan rantaian prototaip (Prototaip Rantaian) ialah konsep yang sangat penting dalam pengaturcaraan berorientasikan objek. Memahami perbezaan mereka dan cara menerapkannya boleh membantu kami memahami dengan lebih baik model objek JavaScript dan mekanisme pewarisan. Artikel ini akan menerangkan konsep prototaip dan rantai prototaip serta aplikasinya melalui contoh kod konkrit.

Pertama, mari kita lihat prototaipnya. Dalam JavaScript, setiap objek mempunyai prototaip. Prototaip objek ialah objek yang mengandungi satu set sifat dan kaedah. Apabila kita mengakses harta atau kaedah objek, jika objek itu sendiri tidak mempunyai sifat atau kaedah, JavaScript akan mencarinya secara automatik dalam prototaip objek. Proses carian ini dipanggil carian rantaian prototaip.

Kita boleh mencipta objek melalui kaedah Object.create() dan menentukan prototaipnya. Contohnya:

var person = {
  name: "张三",
  age: 20,
  sayHello: function() {
    console.log("你好,我是" + this.name + ",今年" + this.age + "岁。");
  }
};

var student = Object.create(person);
student.name = "李四";
student.grade = 5;
student.sayHello(); // 输出:你好,我是李四,今年20岁。

Dalam kod di atas, kami mencipta objek orang, yang mempunyai dua sifat nama dan umur, dan kaedah sayHello. Kemudian, kami mencipta objek pelajar menggunakan kaedah Object.create() dan menentukan prototaipnya sebagai orang. Kemudian, kami menambah gred atribut pada objek pelajar. Akhir sekali, apabila kita memanggil kaedah sayHello() bagi objek pelajar, memandangkan objek pelajar itu sendiri tidak mempunyai kaedah sayHello(), JavaScript akan mencari dalam orang prototaipnya, mencari kaedah yang sepadan dan melaksanakannya.

Seterusnya, mari kita bincangkan rantaian prototaip. Dalam JavaScript, rantai prototaip terdiri daripada satu siri objek, setiap objek mempunyai prototaip, sehingga prototaip objek terakhir adalah nol. Struktur rantai prototaip ini adalah seperti berikut:

student ---> person ---> Object ---> null

Apabila kita mengakses sifat atau kaedah sesuatu objek, JavaScript akan mencari dalam susunan rantaian prototaip sehingga sifat atau kaedah yang sepadan ditemui, atau prototaip objek terakhir ditemui sehingga. Jika sifat atau kaedah yang sepadan tidak ditemui pada akhirnya, undefined akan dikembalikan.

Setelah memahami konsep rantaian prototaip, kita boleh lebih memahami aplikasinya melalui contoh berikut:

function Animal(name) {
  this.name = name;
}

Animal.prototype.sayHello = function() {
  console.log("你好,我是" + this.name + "。");
};

function Dog(name, breed) {
  Animal.call(this, name);
  this.breed = breed;
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.bark = function() {
  console.log("汪汪!");
};

var dog = new Dog("旺财", "拉布拉多");
dog.sayHello(); // 输出:你好,我是旺财。
dog.bark(); // 输出:汪汪!

Dalam kod di atas, kami mentakrifkan dua pembina, Binatang dan Anjing digunakan untuk mencipta objek Haiwan, Anjing pembina digunakan untuk mencipta objek anjing. Melalui pernyataan Object.create(Animal.prototype)语句我们将 Dog 的原型指定为 Animal 的原型,这样 Dog 对象就可以使用 Animal 对象的方法,比如 sayHello() 方法。通过Animal.call(this, name) kami memanggil pembina Haiwan untuk memulakan sifat nama objek Anjing. Kemudian, kami mentakrifkan kaedah baru bark() pada prototaip Dog. Akhir sekali, kami mencipta objek Dog bernama dog dan memanggil kaedah sayHello() dan bark()nya.

Melalui contoh kod di atas, kami mempunyai pemahaman awal tentang konsep prototaip dan rantai prototaip, serta aplikasinya. Prototaip dan rantaian prototaip ialah konsep yang sangat penting dalam JavaScript, dan memahaminya adalah penting untuk kami menulis kod JavaScript berkualiti tinggi. Semoga artikel ini dapat membantu anda.

Atas ialah kandungan terperinci Analisis Perbezaan dan Aplikasi Prototaip dan Rantaian Prototaip. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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