码迷,mamicode.com
首页 > 其他好文 > 详细

实现instanceof功能的函数

时间:2020-04-14 14:06:35      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:null   href   com   false   实例   col   www   typeof   als   

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

 

原文:https://www.jianshu.com/p/0f1ebd388092

实现instanceof功能的函数

标签:null   href   com   false   实例   col   www   typeof   als   

原文地址:https://www.cnblogs.com/xjy20170907/p/12697572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!