一、instanceof 用于检测构造函数的 prototype
属性是否出现在某个实例对象的原型链上
<script>
console.log(2 instanceof Number) // false
console.log([] instanceof Array) //true
</script>
A instanceof B 意思 B 的prototype属性 是否在 A 的原型链上
二、手写
<script>
function myInstanceof (left, right) {
// 获取到对象的原型
let proto = Object.getPrototypeOf(left)
// 获取右侧的prototype对象
let prototype = right.prototype;
while(true) {
if (!proto) return false;
if (proto === prototype) return true;
// 没有找到
proto = Object.getPrototypeOf(proto);
}
}
console.log(myInstanceof([],Array)); //true
</script>