美文网首页
手动实现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

    instanceof instanceof 用于判断某个对象是否是另一个对象(构造方法)的实例。instanceo...

  • JS手动实现instanceof

    1.instanceof实现原理 2、解释说明 示例: a instanceof B 检测a的原型链(proto)...

  • 手动实现new 和 instanceof

    这篇文章是手写实现xxx功能部分的第三篇,后续会陆续更新其他的。 目录传送门 github地址 考察点 new 操...

  • javascript基础知识问答——原型和原型链

    1.理解原型设计模式以及JavaScript中的原型规则 2.instanceof的底层实现原理,手动实现一个in...

  • 2019-05-03

    instanceof的实现 function instanceOf(a,b) { //a是否是b的实例?判断b.p...

  • instanceof 实现

    // 实现一个instanceof/*** 先说一下instenceOf是干什么的* 用法 leftValue i...

  • 接口类

    可以用instanceof检查一个对象是否实现了某个特定接口anObject instanceof Compara...

  • instanceof 的实现

    我们可以通过while实现,终止条件为Object.prototype.prototype = undefined...

  • instanceof实现原理

    看了篇文章讲instanceof实现原理,觉得通俗易懂,在此记录下一句话简述,就是无限比对原型,直到原型对象相等

  • instanceOf

    instanceOf有什么作用?内部逻辑是如何实现的? instanceOf判断一个对象是不是某个类型的实例 [1...

网友评论

      本文标题:手动实现instanceof

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