function myInstance(left, right) {
var proto = left.__proto__;
var prototype = right.prototype;
if (proto === null) {
return false;
} else if (proto === prototype) {
return true;
} else {
return myInstance(proto, right);
}
}
var a = {};
console.log(myInstance(a,Array)); //false
console.log(myInstance({}, Object)) //true
instance的原理就是通过在原型链上(proto)能找到就是true,找不到就是false
该博客探讨了JavaScript中实例检查的实现,通过原型链proto和prototype进行深度比较,展示了如何判断一个对象是否为另一对象的实例。示例代码展示了对于数组和普通对象的实例检查情况。
495

被折叠的 条评论
为什么被折叠?



