目的
检测某一个实例的原型链上是否有这个类的原型属性.
可以区分复杂数据类型 常用于区分数组和对象
1.简述
左边数据的原型链上 是否有右边类的原型属性
首先拿到左边(left)的proto 右边(right)拿prototype
左边的实例可以层层找到右边的属性,则可以判断它是否拥有此属性
2.代码
<script>
function intance (left,right){
let proto = left.__proto__;
let prototype= right.prototype;
while(true){
if(proto == null) return false
if(proto == prototype) return true
proto = proto.__proto__
}
}
console.log(intance([],Array)); //true
console.log(intance({},Array)); //false
</script>
3.总结
对于简单数据类型,我们可以使用typeof检测,缺点是对于引用数据类型全部返回Object对象,
instanceof方法常用于区分数组和对象等复杂数据类型。