JS原型链理解
1. 每个对象都有原型属性(__proto__)
2. 对象的原型(__proto__)指向其构造函数(Constructor)的prototype属性
3. 构造函数(Constructor)的prototype属性本身也是一个对象,其原型(__proto__)亦指向其构造函数的prototype
4. 如此形成一个链式结构,而Constructor.prototype若没有自定义构造函数,则其始终是一个对象,构造函数为Object,
原型为Object.prototype
5. Object.prototype的原型为null,原型链结束
原型链一般用来查找对象的属性和方法,进行类的继承等功能
现象说明
Object.prototype.__proto__ === null JS世界的源头一片荒芜,一切皆空
Object.__proto__ == Function.prototype Object是构造器,本身也是函数,所以其原型就是Function的prototype
Function.__proto__ == Function.prototype Function也是一种函数,所以其原型也是Function的prototype
相关方法
object.hasOwnProperty(propName) 判断对象本身是否有该成员,而不是从原型链继承的成员
object1.isPrototypeOf(object2) 判断object1是否在object2的原型链上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具