Rumah >masalah biasa >Apakah prototaip dan rantai prototaip

Apakah prototaip dan rantai prototaip

百草
百草asal
2023-11-09 17:59:482226semak imbas

Prototaip, objek dalam js, digunakan untuk menentukan sifat dan kaedah objek lain Setiap pembina mempunyai atribut prototaip ini ialah penunjuk yang menunjuk ke objek prototaip, objek baharu ini kaedah diwarisi daripada atribut prototaip pembinanya. Rantaian prototaip, apabila cuba mengakses sifat objek, js akan menyemak sama ada objek mempunyai sifat ini Jika tidak, maka js akan beralih kepada prototaip objek Jika objek prototaip tidak mempunyai sifat ini terus mencari prototaip prototaip.

Apakah prototaip dan rantai prototaip

Sistem pengendalian tutorial ini: sistem Windows 10, komputer DELL G3.

Prototaip dan rantaian prototaip ialah konsep penting dalam pengaturcaraan berorientasikan objek, terutamanya dalam bahasa seperti JavaScript yang menyokong prototaip dinamik. Memahami prototaip dan rantaian prototaip adalah penting untuk memahami cara objek dicipta dan digunakan, dan cara memanggil kaedahnya.

Prototaip:

Prototaip ialah objek dalam JavaScript yang digunakan untuk mentakrifkan sifat dan kaedah objek lain. Setiap pembina mempunyai atribut prototaip, yang merupakan penunjuk kepada objek prototaip. Apabila objek baharu dicipta, objek baharu mewarisi sifat dan kaedah daripada atribut prototaip pembinanya (iaitu objek prototaip).

Contohnya:

function Person(name) {  
  this.name = name;  
}  
  
Person.prototype.sayHello = function() {  
  return 'Hello, my name is ' + this.name;  
};  
  
let person1 = new Person('Alice');  
let person2 = new Person('Bob');  
  
console.log(person1.sayHello()); // 输出: 'Hello, my name is Alice'  
console.log(person2.sayHello()); // 输出: 'Hello, my name is Bob'

Dalam contoh di atas, kami mentakrifkan pembina Orang dan kaedah sayHello melalui Person.prototype. Kemudian kami mencipta dua objek Orang, kedua-duanya mewarisi kaedah sayHello. Ini kerana mereka semua mewarisi daripada objek prototaip Person.prototype.

Rantai prototaip:

Apabila cuba mengakses sifat sesuatu objek, JavaScript akan terlebih dahulu menyemak sama ada objek itu mempunyai sifat ini. Jika tidak, maka JavaScript akan beralih kepada prototaip objek (iaitu, atribut prototaip pembina). Jika objek prototaip tidak mempunyai sifat ini, maka JavaScript akan terus mencari prototaip prototaip, dan seterusnya, sehingga ia menemui objek dengan sifat ini, atau mencapai bahagian atas rantai prototaip (iaitu, nol). Ini dipanggil rantai prototaip.

Contohnya:

function Person(name) {  
  this.name = name;  
}  
  
Person.prototype.sayHello = function() {  
  return 'Hello, my name is ' + this.name;  
};  
  
let person1 = new Person('Alice');  
delete person1.sayHello; // 删除person1的sayHello属性  
  
console.log(person1.sayHello()); // 输出: 'Hello, my name is Alice'

Dalam contoh di atas, kami memadamkan atribut sayHello person1. Apabila kami cuba mengakses person1.sayHello(), JavaScript mula-mula menyemak sama ada person1 mempunyai atribut sayHello. Memandangkan person1 tidak mempunyai atribut ini, JavaScript akan beralih kepada prototaip person1 (iaitu Person.prototype), yang mempunyai kaedah sayHello, jadi ia dipanggil. Inilah tujuan rantai prototaip: ia menyediakan cara untuk berkongsi sifat dan kaedah objek, walaupun sifat dan kaedah tersebut tidak ditakrifkan pada objek itu sendiri.

Atas ialah kandungan terperinci Apakah prototaip dan rantai 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