转自:js实现instanceof_DOM曼珠沙华的博客-CSDN博客
作用:用来判断右边构造函数的原型对象,是否在左边实例对象的原型链上。
实现步骤:
1. 获取类型的原型
2.获取对象的原型
3.循环判断类型的prototype是否在对象的原型链上
function myInstanceof(obj,constructor) {
let prototype = constructor.prototype;
if (obj === null || obj === undefined || !obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
return false;
}
let proto = obj.__proto__;
// let proto = Object.getPrototypeOf(left) //写法2 获取左边对象的原型
while (true) {
if (proto == null) return false;
if (proto === prototype) return true;
proto = proto.__proto__;
}
}
var a={"qqq":"111","22":"ee"};
console.log(myInstanceof(a,Object))