instanceof实现原理

看了篇文章讲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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容