You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于数组let arr = []原型链中原型对象数量的疑问及学习咨询

数组原型链原型对象数量问题解析

问题含义

这个问题本质是考察JavaScript原型链的结构,具体问的是:通过let arr = []创建的数组实例,其原型链上包含的原型对象(即实例继承的上层原型节点)数量。

答案为何是2?

我们可以通过原型链的逐层追溯来验证:

  1. 数组实例arr的直接原型是Array.prototype——这是第一个原型对象。
    验证代码:Object.getPrototypeOf(arr) === Array.prototype // 返回true
  2. Array.prototype的原型是Object.prototype——这是第二个原型对象。
    验证代码:Object.getPrototypeOf(Array.prototype) === Object.prototype // 返回true
  3. 再往上追溯,Object.prototype的原型是null,而null不是对象,不属于原型对象的范畴,因此终止计数。

综上,原型链上的原型对象总数是2。

需先掌握的前置知识

  • 原型与原型链核心机制:理解JavaScript中每个对象(除null外)都内置[[Prototype]]属性,原型链是对象继承属性和方法的底层逻辑。
  • 构造函数与原型对象的关联:比如Array作为构造函数,其prototype属性指向数组实例的共同原型;所有数组实例都会继承Array.prototype的属性。
  • 原型链查看工具:掌握Object.getPrototypeOf()方法,它能直接获取一个对象的直接原型,是分析原型链的关键手段。
  • 原型链的终点规则:明确null是原型链的最终终点,它不是对象,不计入原型对象的统计。

内容的提问来源于stack exchange,提问作者Ava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 10:33:17