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

Barbara Streisand
Lepaskan: 2024-10-21 14:57:30
asal
321 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
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
Artikel terbaru oleh pengarang
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!