美文网首页
手动实现instanceof

手动实现instanceof

作者: 指尖跳动 | 来源:发表于2020-02-27 17:08 被阅读0次

    instanceof

    instanceof 用于判断某个对象是否是另一个对象(构造方法)的实例。instanceof会查找原型链,直到null如果还不是后面这个对象的实例的话就返回false,否则就返回true

    function instanceofFunc(obj, cons) {
      // 错误判断 构造函数必须是一个function 其他的均报错
      if (typeof cons !== 'function') throw new Error('instance error')
      if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) return false
      // 获取到原型对象
      let proto = cons.prototype
      // 如果obj的原型对象不是null
      while (obj.__proto__) {
        if (obj.__proto__ === proto) return true
        obj = obj.__proto__
      }
      return false
    }
    
    console.log(instanceofFunc(() => {}, Function)) // true
    

    相关文章

      网友评论

          本文标题:手动实现instanceof

          本文链接:https://www.haomeiwen.com/subject/ujdxhhtx.html