javascript instanceof()方法原理
instanceof()方法用于确定实例与原型之间的关系。
例子:
function SuperType(){
this.property = "father";
}
SuperType.prototype.getProperty= function(){
console.log("property:"+this.property);
};
function SubType(){
this.property = "son";
}
SubType.prototype = new SuperType();
var son = new SubType();
//确定原型和实例之间的关系
console.log(son instanceof SubType);
console.log(son instanceof SuperType);
console.log(son instanceof Object);
结果:

从结果可知,只要构造函数(参数2)存在于实例(参数1)的原型链中,就会返回true。
instanceof()方法的工作机制是:沿着实例(参数1)的__proto__这条线来找,同时沿着构造函数(参数2)的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。

浙公网安备 33010602011771号