目录前言
一、 实现思路
1. 实现思路
二、 具体实现
前言在 JavaScript 中,instanceof是判断引用类型的重要工具。它不像typeof那样只能识别基础类型,而是能够深入“家谱”,判断一个实例是否属于某个构造函数。本文将带你通过手写实现,彻底掌握其底层原理。
一、 实现思路
instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。
1. 实现思路
类型检查:首先确保左侧是一个对象或函数(基础类型直接返回false)。
获取原型:取得左侧对象的原型__proto__和右侧构造函数的原型prototype。
循环遍历:沿着左侧的原型链不断向上查找(__proto__ = __proto__.__proto__)。
结果判定:如果查找到某个环节等于右侧的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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:如何判别JS中的数据类型?一篇文章教你彻底弄懂typeof和instanceof JS面试必备之手写instanceof,深拷贝,节流和防抖JS前端攻坚浅析instanceof实现原理JavaScript之instanceof方法手写示例详解javascript中instanceof运算符的用法详解JavaScript 手动实现instanceof的方法深入剖析JavaScript instanceof 运算符JavaScript的instanceof运算符学习教程JavaScript中instanceof运算符的使用示例
