instanceof原理解析

instanceof 能够正确的判断对象的类型,由于内部机制是经过判断对象的原型链中是否是能找到类型的 prototypespa

分析:prototype

  • 首先获取类型的原型
  • 而后得到对象的原型
  • 而后一直循环判断对象的原型是否等于类型的原型,直到对象原型为 null,由于原型链最终为 null
// 右边变量的原型存在于左边变量的原型链上
function myInstanceof(left, right) {
  let prototype = right.prototype
  left = left.__proto__
  while (true) {
    if (left === null || left === undefined)
      return false
    if (prototype === left)
      return true
    left = left.__proto__
  }
}
复制代码
相关文章
相关标签/搜索