Rumah  >  Artikel  >  hujung hadapan web  >  Apakah Perbezaan Antara proto dan constructor.prototype dalam Warisan JavaScript?

Apakah Perbezaan Antara proto dan constructor.prototype dalam Warisan JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-21 14:57:30414semak imbas

What's the Difference Between proto and constructor.prototype in JavaScript Inheritance?

Memahami Perbezaan Antara proto dan constructor.prototype

Adalah penting untuk memahami perbezaan antara sifat __proto__ dan constructor.prototype apabila bekerja dengan objek JavaScript.

proto dan Rantaian Prototaip

Setiap objek JavaScript mempunyai sifat __proto__ dalaman yang merujuk objek prototaip daripada pembinanya. Objek prototaip ini mengandungi sifat dan kaedah yang dikongsi untuk objek jenisnya.

Demonstrasi

Pertimbangkan kod berikut:

<code class="js">function Gadget(name, color) {
  this.name = name;
  this.color = color;
}

Gadget.prototype.rating = 3;

var newtoy = new Gadget("webcam", "black");</code>

Dalam ini contoh, __proto__ newtoy akan menunjuk ke Gadget.prototype, yang mempunyai sifat rating dengan nilai 3. Oleh itu, mengakses newtoy.__proto__.__proto__.__proto__ akan mengembalikan null kerana ia tidak mempunyai objek prototaip lagi.

constructor.prototype.constructor.prototype

Ungkapan kompleks ini tidak mengakses rantai prototaip secara langsung. Sebaliknya, ia cuba mengakses constructor.prototype of the constructor.prototype of the constructor.prototype of the Gadget constructor. Dalam kes ini, ia adalah pembina Alat itu sendiri. Oleh itu, ia terus menunjuk ke Gadget.prototype.

Menyemak Null dalam Internet Explorer

Internet Explorer tidak menyokong sifat __proto__. Untuk menyemak nol dalam kes ini, anda boleh menggunakan kaedah hasOwnProperty() untuk menentukan sama ada __proto__ wujud. Contohnya:

<code class="js">if (!(newtoy.hasOwnProperty("__proto__"))) {
  // `__proto__` is not supported
}</code>

Perwakilan Visual

Untuk membantu dalam理解ing, berikut ialah peta visual rantai prototaip dan hubungan antara __proto__ dan constructor.prototype:

[Imej rantaian prototaip dan perhubungan __proto__/constructor.prototaip]

Rajah ringkas ini memberikan gambaran menyeluruh tentang kerja dalaman objek JavaScript, membantu menjelaskan perbezaan antara sifat ini dan peranannya dalam rantaian prototaip.

Atas ialah kandungan terperinci Apakah Perbezaan Antara proto dan constructor.prototype dalam Warisan JavaScript?. 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
Artikel sebelumnya:Javascript dalam sArtikel seterusnya:Javascript dalam s