实现一个instanceOf
实现原理:
- 利用while进行循环
- 通过原型链向上查找,如返回的值为null,则返回false,返回的值存在,则返回true
代码实现:
function instanceOf(sub,sup) {
let prototype = sup.prototype
let proto = sub.__proto__
while(1) {
if(proto === null) return false
if(proto === prototype) return true
proto = proto.__proto__
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9