搞清楚原型链
前提须知(敲黑板). JavaScript内置对象
内置对象指的是:JavaScript本身就自己有的对象,可以直接拿来就用。例如Array String 等等。JavaScript一共有12内置对象
(1).其中10个函数类型( String,Number,Boolean,Array,Function,Date,RegExp,Error,Object,Event )函数类型 有 __proto__和 prototype 属性
(2).其中2个对象类型(Math,JSON) 对象类型只有__proto__属性,(不可以new Math,会报错,这就是和上边10个的区别)。
1.特殊的Function.prototype、Function._ _proto_ _。
问:js中所有类/构造函数的prototype和_ _proto_ _都是一个对象?
答:错!Function的prototype和_ _proto_ _是函数数据类型,且 Function.prototype==Function._ _proto_ _ ,这是为了保证函数构造器们(String,Number,Boolean,Array,Function,Date,RegExp,Error,Object,Event)的_ _proto_ _指向的都是函数【始终不明白为什么】。
2.Object._ _proto_ _指向Function.prototype,这很好理解,Object指向所属类(Function)的原型嘛。
3.Object.prototype._ _proto_ _是不存在的,Object.prototype是原型链的顶端。
4.Object作为一个构造函数(是一个函数对象!!函数对象!!),所以他的__proto__指向Function.prototype;
5.Object.prototype.hasOwnProperty()属性方法用来检验一个对象是否自己拥有一个属性而非通过进化链__proto__继承来的属性。
以上这些只是为了学习做的总结,有部分摘自大牛原话,本人只是为了学习方便做的笔记,如有侵权,联系必删,致敬大牛!
原文链接:https://www.cnblogs.com/chenguangliang/p/6652213.html
【推荐】国内首个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满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南