instanceof实现原理

思路

右边变量的原型存在于左边变量的原型链上

关于原型链不太懂的同学可以看一下,我的这篇文章:JS基础-函数、对象和原型、原型链的关系

代码:

function myInstanceOf(left, right) {
  let leftValue = left.__proto__
  let rightValue = right.prototype
  while (true) {
    if (leftValue === null) {
      return false
    }
    if (leftValue === rightValue) {
      return true
    }
    leftValue = leftValue.__proto__
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

点个Star支持我一下~

最后更新时间: 10/24/2019, 1:38:56 PM