instanceof是怎么判断数据类型的
instanceof是通过原型链判断,A instanceof B表示:在A的原型链中一直向上查找,是否有原型等于B.prototype。如果一直找到顶端,仍然没有等于B.prototype的,就返回false。
原生实现一个instanceof
function instance_of(L, R){
L = L.__proto__;// 隐式原型
let P = R.prototype;// 显式原型
while(true){
if(L === null){
return false
}else if(L === P){
return true
}
L = L.__proto__
}
}
instance_of([], Array) // true
instance_of([], String) // false
网友评论