Object.prototype 的原型是 null,因为它是原型链的终点,标志着继承体系的明确边界;所有对象的原型链最终都终止于此,属性查找在此停止并返回 undefined。

Object.prototype 的原型是 null。
为什么是 null?
这标志着原型链的终点。JavaScript 规定所有对象的原型链最终必须终止,而 Object.prototype 就是这个“根对象”——它本身没有原型,也不继承自任何其他对象。
你可以直接验证:
console.log(Object.prototype.__proto__); // null<br>console.log(Object.getPrototypeOf(Object.prototype)); // null
这个 null 很关键
- 它是属性查找的停止条件:当沿原型链一路向上找不到某个属性,且到达 Object.prototype 后再查其 __proto__,得到 null,查找就结束,返回 undefined。
- 它让整个继承体系有明确边界,避免无限递归。
- 所有通过字面量(
{})、new Object()、或任何构造函数创建的对象,其原型链最终都会落到 Object.prototype,再往上就是 null。
别和 Function.prototype 混淆
Function.prototype 是函数对象的原型,但它自己也是个对象,所以它的原型是 Object.prototype:
console.log(Function.prototype.__proto__ === Object.prototype); // true
而 Object.prototype 自身不再指向别的对象,它的原型只能是 null。











