instanceof实现原理

2021-05-14  本文已影响0人  小啊美

看了篇文章讲instanceof实现原理,觉得通俗易懂,在此记录下
一句话简述,就是无限比对原型,直到原型对象相等

function myInstanceof (left, right) {
  // 先判断是否是基础数据类型,如果是则直接return
  if (typeof left !== 'object' || left === null) return false
  // 获取实例的原型对象
  let proto = Object.getPrototypeOf(left)
  // 进入无限循环,直到找到相同的原型对象
  while(true) {
    if (proto === null) return false
    if (proto === right.prototype) return true
    proto = Object.getPrototypeOf(proto)
  }
}
// test
myInstanceof(new String(123), String) //true
myInstanceof('123', String) //false
上一篇 下一篇

猜你喜欢

热点阅读