最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何通过 图解原型链 彻底搞懂 Object 与 Function 的互为实例关系
时间:2026-06-04 10:12:56 编辑:袖梨 来源:一聚教程网
Object 和 Function 互为实例是原型链自然演化的结果:Object.__proto__ === Function.prototype,Function.__proto__ === Function.prototype,Object.prototype.__proto__ === null,三者构成闭环。
object 和 function 互为实例,不是循环悖论,而是原型链自然演化的结果。关键不在“谁先谁后”,而在它们的 __proto__ 指向 和 constructor 关系 如何层层嵌套、最终收束于 null。
Function 是所有函数的构造器,包括 Object
JavaScript 中,每个函数(含 Object、Array、function foo(){})都是 Function 的实例:
-
typeof Object === 'function'→Object是函数对象 -
Object.__proto__ === Function.prototype→ 它由Function构造 -
Function.__proto__ === Function.prototype→Function也构造自己(唯一自指函数)
Object 是所有普通对象的原型终点
Object.prototype 是绝大多数对象原型链的顶端,它的 __proto__ 为 null:
{}.__proto__ === Object.prototype-
new Date().__proto__ === Date.prototype,而Date.prototype.__proto__ === Object.prototype -
Object.prototype.__proto__ === null→ 原型链在此终止
为什么 Object instanceof Function 为 true?
因为 instanceof 判断逻辑是:**沿着左操作数的 __proto__ 链,查找是否等于右操作数的 prototype**:
-
Object instanceof Function→ 查Object.__proto__(即Function.prototype)是否等于Function.prototype→ ✅ 相等 -
Function instanceof Object→ 查Function.__proto__(即Function.prototype),再查Function.prototype.__proto__(即Object.prototype),它等于Object.prototype→ ✅ 找到
图解核心三节点闭环
真正支撑互为实例的,是以下三个关键连接(可手绘三节点箭头图):
-
Function.prototype 是一个函数对象 → 它的
__proto__指向Object.prototype -
Object.prototype 是一个普通对象 → 它的
constructor指向Object(通过原型链继承) -
Object 是函数 → 它的
prototype是一个对象,该对象的constructor又指向Object
这三者构成闭环:Function 构造 Object → Object 的原型是 Object.prototype → Object.prototype 的源头是 Function.prototype → Function.prototype 本身又是 Function 的实例。
相关文章
- llama.cpp 修复 Gemma 4 统一 FPE 问题 06-04
- 扩散大语言模型遭结构感知自适应攻击MaskForge越狱 06-04
- 小米8透明探索版手机 - 经典旗舰机型回顾 06-04
- DeepSeek-V4 初始化兼容性修复:解决 CUTLASS fmin 问题 06-04
- Excel查找内容显示不出来如何解决 06-04
- 专业译者难辨ChatGPT-4o生成的意大利短篇故事 06-04