对于instanceOf的手写实现,需要对原型链进行理解
instanceOf 传入的参数有两个
一个是constructor
构造函数
一个是需要比较的obj
对象
核心思想是对obj的原型链上找原型和constructor构造函数的原型对象进行对比
代码如下:
function myInstanceOf(obj, constructor){
let constructorProto = constructor.prototype;
let objProto = Object.getPrototypeOf(obj);
while(objProto !== null){
if(objProto === constructorProto) {
return true
}
//往原型链上找
objProto = Object.getPrototypeOf(objProto);
}
return false
}