
JavaScript学习手册(54)
发布日期:2021-05-09 19:29:20
浏览次数:18
分类:精选文章
本文共 901 字,大约阅读时间需要 3 分钟。
instanceof 运算符是如何判断的?
在 JavaScript 中,A instanceof B
表达式用于判断对象 A 是否是构造器 B 创建的实例。具体来说:
表达式结构: A instanceof B
- A:待判断的对象(实例)
- B:构造器(类似于类或函数)
判断逻辑:
- 在执行此操作时,JavaScript 会检查 A 对应的原型链,是否与 B 对应的显式原型对象存在关联。如果有关联,则返回
true
;否则返回false
。
构造器与实例的关系:
- JavaScript 中的构造器通常是通过
new
关键字调用函数来创建实例的。例如:
function Person(name) { this.name = name; } const p = new Person('张三'); // p 是 Person 构造器的实例
- 构造器的原型对象(
Person.prototype
)会成为新实例的[[Prototype]],从而使实例与构造器保持原型链联系。
原型链的作用:
- 原型链机制允许每个实例在查询属性时,沿其原型链逐级查找,最终指向 Object.prototype。这样可以让多个实例共享属性和方法,减少内存占用。
实例与构造器的关系:
- 如果构造器 B 的显式原型对象不在 A 的原型链上,则
A instanceof B
返回false
。 - 例如:
class Teacher {}; // 定义一个构造器 Teacher const student = new Teacher(); // student 是 Teacher 构造器的实例 console.log(student instanceof Teacher); // true console.log(student instanceof Student); // false(假设 Student 是另一个构造器)
通过以上原理,可以清晰地理解 instanceof
运算符是如何判断实例与构造器的关系的。这一机制是 JavaScript 原型继承系统的重要组成部分,自己也是一种 runtime 类型检查机制。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月11日 09时36分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
QT添加自定义控件
2019-03-07
warning LNK4204:
2019-03-07
c++模板定义malloc
2019-03-07
基于R语言sentiment包的六种情感分析
2019-03-07
静态列级、元组、关系,动态列级、元组实例区别
2019-03-07
【Java-27】Java常见错误记录
2019-03-07
andriod 开发错误记录
2019-03-07
生成树协议(二)
2019-03-07
将字符串中的特定字符替换为其他字符
2019-03-07
创建一个简单的SpingBoot项目,并且部署到linux上运行
2019-03-07
Python之Numpy库的简单介绍(一)
2019-03-07
java反射
2019-03-07
仅仅反转字母
2019-03-07
【Linux】程序地址空间,分段式、分页式存储理解
2019-03-07
【力扣】[热题 HOT100] 32.最长有效括号
2019-03-07
YOLOv5超详细的入门级教程(训练篇)(五)——远程服务器上后台训练网络
2019-03-07
李宏毅2020ML——P4模型误差来源
2019-03-07
Jupyter notebook 使用、上手
2019-03-07
mysql8.0及以上在my.cnf设置sql_mode之后mysql无法启动
2019-03-07