递归方法:
function instanceof_(left,right){
if(left.__proto__ === null){
return false;
}else{
if(left.__proto__ === right.prototype){
return true;
}else{
return instanceof_(left.__proto__,right);
}
}
}
function Person(name){
this.name = name;
}
var david = new Person('david');
console.log(instanceof_(david,Person));
while循环(推荐这个,处理速度比闭包快多了):
function instanceOf_(left,right) {
let proto = left.__proto__;
let prototype = right.prototype
while(true) {
if(proto == null) return false
if(proto == prototype) return true
proto = proto.__proto__;
}
}
function Person(name){
this.name = name;
}
var david = new Person('david');
console.log(instanceOf_(david,Person));