原型和 __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中文網其他相關文章!