instanceof封装
instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
其实 instanceof 主要的实现原理就是只要右边变量的 prototype 在左边变量的原型链上即可。因此,instanceof 在查找的过程中会遍历左边变量的原型链,直到找到右边变量的 prototype,如果查找失败,则会返回 false,告诉我们左边变量并非是右边变量的实例。
function instanceof(L, R) {
let O = R.prototype;
L = L.__proto__;
while (true) {
if (L === null) {
return false;
}
if (O === L) {
return true;
}
L = L.__proto__;
}
}