实现instanceof功能的函数

Posted xjy20170907

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现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

 

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

以上是关于实现instanceof功能的函数的主要内容,如果未能解决你的问题,请参考以下文章

SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML

根据原型链实现instanceof

instanceof关键字

前端面试 JavaScript— 能不能手动实现一下 instanceof 的功能?

我如何使用视图模型从另一个片段访问函数

IOS开发-OC学习-常用功能代码片段整理