实现一个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
上次更新: 9/25/2019, 9:54:29 AM