Skip to content

原型链的终点是什么?

参考答案:

原型链的终点是 Object.prototype

在 JavaScript 中,所有对象的原型链最终都会归结到 Object.prototype,这是原型链的最后一个环节。

原型链的结构

  1. 对象实例:每个 JavaScript 对象都有一个内部属性 [[Prototype]](在代码中通过 __proto__Object.getPrototypeOf 可以访问),这个属性指向该对象的原型。

  2. 构造函数的原型:构造函数创建的对象实例的原型指向构造函数的 prototype 对象。例如:

    javascript
    function Person(name) {
        this.name = name;
    }
    
    const john = new Person('John');

    在这个例子中,john 的原型指向 Person.prototype

  3. Object.prototype:每个对象的原型链最终都会指向 Object.prototype。这是 JavaScript 原型链的终点。Object.prototype 是所有对象的共同祖先,它提供了所有对象共有的属性和方法,如 toString, hasOwnProperty 等。

  4. nullObject.prototype[[Prototype]]null,这是原型链的终点。null 表示没有更多的原型链。

原型链的终点示例

javascript
const obj = {};

// 访问 obj 的原型
console.log(Object.getPrototypeOf(obj)); // 输出: {}
console.log(Object.getPrototypeOf(Object.getPrototypeOf(obj))); // 输出: null

在上面的代码中,Object.getPrototypeOf(obj) 返回 Object.prototype,而 Object.getPrototypeOf(Object.prototype) 返回 null,标志着原型链的终点。

题目要点:

  • 原型链的终点Object.prototype 是原型链的终点,它的 [[Prototype]] 指向 null
  • Object.prototype:提供了所有对象共有的属性和方法。
  • null:表示原型链的最末端,没有更多的原型链。