/*
instanceOf原理:
temp 通过 __proto__向上查的时候,若有某次的 __proto__===classN.prototype就返回true
当某次的__proto__===null 就但会false
*/
function myInstanceof(temp,classN){
var left = temp.__proto__;//让left=instanceof的左支
var right = classN.prototype;//让right=instanceof的右支
let str = typeof temp;先用typeof检测传进来的temp
if(str !=== 'Object' && str !=='function')return false;//如果这个检测结果不是对象也不是函数就返回false
while(left){//左支存在
if(left === right)return true;//如果左支=右支
left = left.__proto__;//让左支回到最初
}
return false;//否则返回false
}
myInstanceof([], Number);//false
myInstanceof([], Array);//true