javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JS instanceof

JS中instanceof的使用小结

作者:发现一只大呆瓜

在JavaScript中,instanceof是判断引用类型的重要工具,本文就来介绍一下JS中instanceof的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

在 JavaScript 中,instanceof 是判断引用类型的重要工具。它不像 typeof 那样只能识别基础类型,而是能够深入“家谱”,判断一个实例是否属于某个构造函数。本文将带你通过手写实现,彻底掌握其底层原理。

一、 实现思路

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

1. 实现思路

  1. 类型检查:首先确保左侧是一个对象或函数(基础类型直接返回 false)。

  2. 获取原型:取得左侧对象的原型 __proto__ 和右侧构造函数的原型 prototype

  3. 循环遍历:沿着左侧的原型链不断向上查找(__proto__ = __proto__.__proto__)。

  4. 结果判定

    • 如果查找到某个环节等于右侧的 prototype,则返回 true
    • 如果查找到原型链的尽头(null)仍未找到,则返回 false

二、 具体实现

  function myInstanceof(obj, func) {
    if (typeof obj !== 'object' && typeof obj !== 'function') {
      return false;
    }
    let proto = obj.__proto__;
    const prototype = func.prototype;
    while (proto !== prototype) {
      if (proto === null) {
        return false;
      }
      proto = proto.__proto__;
    }
    return true;
  }
  const date = new Date();
  console.log(myInstanceof(date, Object));    // true

  console.log(myInstanceof([1, 2], Array)); // true

到此这篇关于JS中instanceof的使用小结的文章就介绍到这了,更多相关JS instanceof内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文