原型式继承以现有对象为模板,通过Object.create()创建新对象并建立委托关系,实现行为复用而非实例复制,适用于配置派生、轻量实体系统等场景。
原型式继承不依赖构造函数,直接以一个现有对象为模板,创建出新对象并建立委托关系。它写法简洁,核心是 Object.create()。
最简写法只有一行:
const parent = { name: 'Base', skills: ['JS'] };<br>const child = Object.create(parent);<br>child.name = 'Derived'; // 自身属性<br>child.skills.push('React'); // 注意:引用类型仍共享
关键点:
[[Prototype]] 直接指向 obj
constructor 自动绑定(如需可手动设)它适合轻量、数据驱动、无需类抽象的场合,尤其当“对象即配置”或“对象即模板”时:
立即学习“Java免费学习笔记(深入)”;
Object.create(baseConfig) 快速生成 dev / prod / test 等变体,各自覆盖部分字段,其余自动继承entity 对象定义通用方法(update()、render()),player = Object.create(entity) 和 enemy = Object.create(entity) 各自添加专属逻辑,共享底层行为Object.create(templateWithMethods)
它不是万能替代,有明确边界:
instanceof)的场景;它产出的是普通对象,不是某构造函数的实例