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