object instanceof constructor
instanceof 和 typeof 非常的类似。instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。
console.log(Object instanceof Object);//true
console.log(Function instanceof Function);//true
console.log(Number instanceof Number);//false
console.log(String instanceof String);//false
console.log(Function instanceof Object);//true
console.log(Foo instanceof Function);//true
console.log(Foo instanceof Foo);//false
instanceof的手写
function newInstanceof(L,R){
let O=R.prototype;
L=L.__proto__;
while(true){
if(L===null) return false;
if(O===L) return true;
L=L.__proto__;
}
}
console.log(newInstanceof(Function,Object));