首頁 >web前端 >js教程 >原型與「__proto__」:真正的差別是什麼?

原型與「__proto__」:真正的差別是什麼?

Barbara Streisand
Barbara Streisand原創
2024-12-14 15:19:14613瀏覽

Prototype vs. `__proto__`: What's the Real Difference?

原型和 __proto__:理解區別

在物件導向程式設計領域,理解原型和 .__proto__ 的概念至關重要。雖然這些術語看起來是同義詞,但它們具有不同的用途。

proto 指的是物件原型的內部引用,原型是為給定物件提供繼承行為的物件。它是在查找鏈中用於解析方法和屬性的實際物件。

另一方面,prototype 是指向原型物件的建構子的明確屬性。當使用建構函數建立新物件時,新物件的 __proto__ 屬性將設定為建構函數原型的值。

為了說明這種區別:

var b = new Foo(20);
var c = new Foo(30);

(new Foo).__proto__ === Foo.prototype // true
(new Foo).prototype === undefined // true

在此例如,Foo.prototype 是 b 和 c 的原型物件。 b 和 c 的 __proto__ 屬性指向這個原型對象,允許它們繼承它的屬性和方法。

值得注意的是,prototype 是一個可讀寫的屬性,而 __proto__ 通常被認為是唯讀的。直接修改 __proto__ 屬性可能會導致意外行為。

以上是原型與「__proto__」:真正的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn