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。