Bagaimana untuk menyediakan rantaian prototaip dalam JavaScript

PHPz
Lepaskan: 2023-04-26 15:22:39
asal
804 orang telah melayarinya

JavaScript ialah bahasa pengaturcaraan berasaskan prototaip. Dalam JavaScript, setiap objek mempunyai objek prototaip Kita boleh mengakses dan mewarisi sifat dan kaedah pada objek induk melalui mekanisme rantai prototaip JavaScript, dengan itu mencapai penggunaan semula dan pengoptimuman kod.

Berikut ialah artikel tentang menyediakan rantaian prototaip dalam JavaScript Ia terutamanya memperkenalkan apa itu rantaian prototaip JavaScript, cara mencipta objek prototaip dan cara mencipta objek contoh.

1. Rantaian prototaip JavaScript

Rantai prototaip JavaScript bermakna setiap objek mempunyai objek prototaip (prototaip), yang mengandungi sifat dan kaedah. Apabila mengakses sifat dan kaedah objek, JavaScript terlebih dahulu akan menyemak sama ada sifat atau kaedah itu wujud dalam objek itu sendiri Jika ia tidak wujud, ia akan mencari rantai prototaip objek sehingga ia menemui sifat atau kaedah. Jika sifat atau kaedah tidak ditemui dalam keseluruhan rantaian prototaip, undefined dikembalikan.

Kami boleh menggunakan mekanisme rantai prototaip JavaScript untuk berkongsi sifat dan kaedah objek, dengan itu mencapai penggunaan semula dan pengoptimuman kod. Biasanya, apabila melaksanakan fungsi pewarisan, kami akan menggunakan mekanisme rantai prototaip untuk mewarisi sifat dan kaedah pada objek induk, untuk mencapai kesan penggunaan semula kod.

2. Cipta objek prototaip

Dalam JavaScript, kita boleh mencipta objek prototaip melalui pembina atau literal objek. Objek prototaip pembina boleh diakses dan ditetapkan melalui atribut prototaip. Objek prototaip bagi literal objek boleh diakses dan ditetapkan melalui atribut __proto__.

1. Gunakan pembina untuk mencipta objek prototaip

Kod sampel adalah seperti berikut:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayHello = function() {
  console.log('Hello, ' + this.name);
};
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan pembina Orang menggunakan atribut prototaip Menambah kaedah sayHello pada objek prototaipnya.

Objek prototaip yang dibuat menggunakan pembina akan dikongsi oleh objek contoh Oleh itu, kita boleh mengakses dan memanggil sifat dan kaedah pada objek prototaip dengan mencipta objek contoh.

Kod sampel adalah seperti berikut:

var person = new Person('Jack', 20);
person.sayHello(); // 输出:Hello, Jack
Salin selepas log masuk

Dalam kod sampel di atas, kita mula-mula mencipta contoh objek orang melalui pembina Orang, dan kemudian mengeluarkan ucapan dengan memanggil kaedah sayHello .

2. Gunakan literal objek untuk mencipta objek prototaip

Kod sampel adalah seperti berikut:

var person = {
  name: '',
  age: '',
  sayHello: function() {
    console.log('Hello, ' + this.name);
  }
};
Salin selepas log masuk

Dalam kod sampel di atas, kami menggunakan literal objek untuk mencipta A objek orang, yang mengandungi nama, umur dan atribut dan kaedah sayHello. Di samping itu, dalam literal objek, kita boleh menggunakan atribut __proto__ untuk mengakses dan menetapkan objek prototaipnya.

Kod sampel adalah seperti berikut:

var person1 = {
  name: 'Jack',
  age: 20,
};

var person2 = {
  name: 'Lucy',
  age: 18,
};

person1.__proto__ = person;
person2.__proto__ = person;

person1.sayHello(); // 输出:Hello, Jack
person2.sayHello(); // 输出:Hello, Lucy
Salin selepas log masuk

Dalam kod sampel di atas, kita mula-mula mencipta dua objek contoh person1 dan person2, dan kemudian halakan objek prototaip mereka melalui atribut __proto__ The objek orang yang ditakrifkan di atas menyedari perkongsian kaedah sayHello, dan kaedah itu boleh diakses terus dan dipanggil dalam objek contoh.

3. Cipta objek contoh

Dalam JavaScript, kita boleh mencipta objek contoh melalui pembina atau literal objek. Apabila pembina mencipta objek contoh, menggunakan kata kunci baharu boleh secara automatik memanggil pembina dan mengembalikan objek contoh baharu. Literal objek mencipta objek contoh secara langsung.

1. Gunakan pembina untuk mencipta objek contoh

Kod sampel adalah seperti berikut:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayHello = function() {
  console.log('Hello, ' + this.name);
};

var person = new Person('Jack', 20);
person.sayHello(); // 输出:Hello, Jack
Salin selepas log masuk

Dalam kod sampel di atas, kami mula-mula mentakrifkan pembina Orang , dan Menambah kaedah sayHello pada objek prototaipnya. Kemudian, kami memanggil pembina Orang menggunakan kata kunci baharu, mencipta contoh objek orang, dan mengeluarkan ucapan dengan memanggil kaedah sayHello.

2. Gunakan literal objek untuk mencipta objek contoh

Kod sampel adalah seperti berikut:

var person = {
  name: '',
  age: '',
  sayHello: function() {
    console.log('Hello, ' + this.name);
  }
};

var person1 = Object.create(person);
person1.name = 'Jack';
person1.age = 20;
person1.sayHello(); // 输出:Hello, Jack

var person2 = Object.create(person);
person2.name = 'Lucy';
person2.age = 18;
person2.sayHello(); // 输出:Hello, Lucy
Salin selepas log masuk

Dalam kod contoh di atas, kami mula-mula mencipta objek contoh menggunakan objek literal objek orang, dan kemudian gunakan kaedah Object.create untuk mencipta dua objek contoh, orang1 dan orang2, dan tentukan objek prototaip mereka sebagai objek orang. Akhir sekali, kami menetapkan nama dan atribut umur untuk objek person1 dan person2 masing-masing, dan mengeluarkan ucapan dengan memanggil kaedah sayHello.

Atas ialah kandungan terperinci Bagaimana untuk menyediakan rantaian prototaip dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!