原型

原型的概念以及访问

JS中原型就是一个对象,它用于某个对象从其他对象中继承属性。 怎么理解这句话呢:例如,对象b想有一个.x属性。如果对象a有.x属性,那么让b的原型等于a,则b就也有了.x属性。注意b的.x属性本质上就是a的.x属性。

每个对象都有一个原型。原型本身也是对象。这意味着原型本身也含有一个原型。当然这样下去似乎无穷无尽,自然有一个原型链的顶层对象,这个对象叫Object。这个对象是一个例外,它没有原型。

原型有几种方式可以访问

// ECMA5 标准 IE<=8失败
Object.getPrototypeOf(a);
// IE下失败,其他都可以
a.__proto__;
// 所有浏览器都可以,但是这有可能会出问题,下面讲对象的构造的时候会说明
a.constructor.prototype