JavaScript原生实现typeof和instanceof方法

1.实现typeof方法

function myTypeof(obj){
  let reg = /\s(\w+)/         //Object.prototype.toString.call()返回[object 类型],根据返回建立匹配规则
  let result = reg.exec(Object.prototype.toString.call(obj))    //根据匹配规则查找
  return result[0]            //返回查找的第一个类型
}

参考:https://www.jianshu.com/p/3d1021e7a7c5

2.实现instanceof方法

function myInstanceof(target, origin){
  let proto = target.__proto__        //取出目标的对向原型
  while(proto){                       //判断不为空
    if(proto === origin.prototype){   //判断目标对象原型和origin的原型对象是否相同
      return true
    }
    proto = proto.__proto__           //沿原型链向上查找
  }
  return false                        //为空或未找到返回false
}
posted @ 2021-03-10 15:04  xiaoxu1024  阅读(56)  评论(0)    收藏  举报