//关于instanceof的实现原理,可以参考下面
function myInstanceof(left, right) {
// 这里先用typeof来判断基础数据类型,如果是,直接返回false
if(typeof left !== 'object' || left === null) return false;
// getProtypeOf是Object对象自带的API,能够拿到参数的原型对象
let proto = Object.getPrototypeOf(left);
while(true) {
if(proto === null) return false;
if(proto === right.prototype) return true;//找到相同原型对象,返回true
proto = Object.getPrototypeof(proto);
}
}
let car = new String('xxx')
console.log(myInstanceof(car, String)) // true
instanceof的实现原理,可以参考下面
最新推荐文章于 2024-08-13 22:07:58 发布