原型模式通过共享方法到prototype提升执行效率,避免构造函数内重复创建方法导致的内存浪费;利用object.create实现轻量克隆;支持运行时动态扩展;配合new机制优化原型链访问性能。

原型模式在 JavaScript 面向对象编程中提升执行效率,核心在于避免重复创建相同逻辑的方法,把共享行为统一存放在原型对象上,让所有实例按需复用,而不是各自拷贝一份。
解决构造函数中方法重复创建的内存浪费
每次用 new 创建实例时,若在构造函数体内直接定义方法(如 this.say = function() {...}),每个实例都会生成独立的函数副本,占用多份内存,且函数引用不相等。
- 例如:
p1.say === p2.say返回 false,说明是两个不同函数对象 - 而把方法挂到
Constructor.prototype上后,p1.say === p2.say为 true,只存在一份函数体
利用 Object.create 实现轻量级对象克隆
当需要大量相似但略有差异的对象(如配置项、UI 组件实例),可先定义一个基础原型对象,再用 Object.create(prototype) 快速生成新对象。这种方式跳过了构造函数执行和属性初始化开销,尤其适合高频率创建场景。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 比
new Constructor()更直接,不触发构造逻辑 - 新对象的
[[Prototype]]直接指向指定原型,继承链清晰可控
动态扩展与运行时复用能力
原型对象是“活”的——在运行时向其添加属性或方法,所有已存在和未来创建的实例都能立即使用。这种动态性减少了预设类结构的僵化,也避免了为每种变体单独写构造函数。
- 比如:后期给
Person.prototype加.introduce(),已有person1、person2都能立刻调用 - 无需重新实例化,也不影响已有对象的内存布局
配合 new 操作符的底层机制协同提效
new 的第二步就是将新对象的内部 [[Prototype]] 指向构造函数的 prototype。这个链接天然支持属性查找缓存(V8 引擎会优化原型链访问),使方法调用更接近“就近查找”,减少遍历层级。
- 引擎对原型链上的属性访问有专门的内联缓存(IC)优化
- 相比深嵌套对象或反复计算生成的方法,原型上的方法调用更快更稳定
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










