原型链
每一个对象都有隐式原型,隐式原型的指向形成的链条,叫做原型链
Function的隐式原型指向自己的原型
Object的原型的隐式原型指向null
原型链的应用
w3c不推荐直接使用系统成员__proto__
Oject.getPrototypeOf(对象)
获取对象的隐式原型
var obj = new Object()
// 拿到obj的构造函数
Oject.getPrototypeOf(obj).constructor
Object.prototype.isPrototypeOf(对象)
判断当前对象是否在指定对象的原型链上
function A(){}
var obj = new A();
// Object.prototype是否在obj的原型链上
console.log(Object.prototype.isPrototypeOf(obj));// true
Function.prototype.isPrototypeOf(obj);//
对象 instanceof 函数
判断函数的原型是否在对象的原型链上
对象是不是函数构造出来的
Object.create(对象)
创建一个新对象,其隐式原型指向指定的对象
Object.prototype.hasOwnPrototype(属性名)
判断一个对象自身是否拥有某个属性