在 JavaScript 中,原型链的结构是如何构成的,其末端指向什么?
考察说明
考查对 JavaScript 原型链机制和终点指向的理解。
回答思路
- 【回答框架 1】每个 JavaScript 对象都有一个内部属性 [[Prototype]],指向其构造函数的 prototype 对象。访问属性时,若对象自身没有,则沿 [[Prototype]] 链向上查找,直到找到或到达链的末端。
- 【回答框架 2】原型链的末端是 Object.prototype,它内部的 [[Prototype]] 为 null,因此整个原型链的终点是 null。这表明原型链并非无限循环,而是有明确的终止机制。
- 【回答框架 3】通过原型链,实例可以共享构造函数 prototype 上的方法和属性,实现继承。例如,数组实例通过原型链访问到 Array.prototype 上的方法,再向上到 Object.prototype。
- 【回答框架 4】可以使用 Object.getPrototypeOf() 或 __proto__ 属性来观察对象的原型链,从而验证链的终点确实是 null。
- 【关键点 1】原型链的末端指向 null,即 Object.prototype 的 [[Prototype]] 为 null。
- 【关键点 2】属性查找沿原型链向上进行,直到找到或到达 null。
- 【关键点 3】原型链是实现 JavaScript 继承的基础机制。
- 【易错点 1】不要将原型链误认为完全独立于构造函数的单链,每个对象都通过内部 [[Prototype]] 连接。
- 【易错点 2】避免遗忘原型链终点为 null,这是理解循环引用和继承关键。