ECMAScript原型

原型、构造函数、new、class 之间关系的导航笔记。

#type / synthesis #status / growing #resource / javascript #resource / ecmascript

[!info] related notes

ECMAScript原型

这篇笔记只保留原型主题的关系入口,不再和原子笔记重复展开定义。

建议阅读顺序

  1. js对象
  2. js原型和原型链
  3. js构造函数
  4. js-new
  5. proto-prototype-constructor
  6. js-class
  7. js继承in-es6-es5

这组概念的关系

一句话结论

JavaScript 的对象系统底层仍然是原型链,class 只是更易读的写法。

面试要点

来自 javascript-prototype-chain-interview-question 的面试视角整理。

一句话回答

原型链是对象属性查找时沿原型逐级向上查找的机制,而 new 的核心作用是创建实例对象,并把实例连接到构造函数的 prototype 上。

回答原型链时最稳的说法

  • 对象访问属性时,先看自己有没有
  • 没有就沿着内部原型继续往上找
  • 一直找到 Object.prototypenull

回答 new 时最稳的说法

可以按步骤讲:

  1. 创建一个新对象
  2. 让新对象的原型指向构造函数的 prototype
  3. 用新对象作为 this 执行构造函数
  4. 返回这个对象(除非构造函数显式返回对象)

面试里的常见误区

__proto__ 当成原型本身

更准确地说,它只是实例和原型对象之间的连接表现。

class 当成完全不同的对象模型

JavaScript 底层仍然是原型机制,class 只是更现代的写法。

最短记忆方式

原型链解决“属性怎么找”,new 解决“实例怎么接到原型上”。

创建于 2025/1/1 更新于 2026/5/27