将方法挂载到构造函数 prototype 或 class 原型上可实现共享、节省内存、便于维护继承;class 中方法默认在原型上;批量可用 object.assign;避免在构造函数或类字段中定义实例方法。

把方法统一挂到构造函数的 prototype 上,就能让所有实例共享同一份函数,避免重复创建、节省内存,也便于后续维护和继承。
直接在 prototype 上添加方法
这是最直观的方式:定义好构造函数后,直接给它的 prototype 赋值函数。
- function Person(name) { this.name = name; }
- Person.prototype.sayHi = function() { return `Hi, I'm ${this.name}`; };
- new Person('Alice').sayHi() 和 new Person('Bob').sayHi() 调用的是同一个函数
用 class 语法自动挂载
ES6 的 class 写法中,普通方法默认就定义在原型上,无需手动操作。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- class Animal { constructor(type) { this.type = type; } speak() { return `${this.type} makes a sound`; } }
-
speak方法等价于写在Animal.prototype.speak上 - 验证:console.log(Animal.prototype.speak) 是函数;
new Animal('dog').hasOwnProperty('speak')返回false
批量挂载多个方法
如果方法较多,可以用 Object.assign 一次性写入,结构更清晰。
- Object.assign(Person.prototype, {
- sayHi() { return `Hi, ${this.name}`; },
- sayBye() { return `Bye, ${this.name}`; }
- });
避开常见陷阱
别在构造函数内部或类字段里用函数表达式/箭头函数定义方法,否则会变成实例私有,无法共享也无法被子类继承。
- ❌ 错误:
this.speak = function() {}或speak = () => {} - ✅ 正确:
speak() { }(class 内)或显式写Constructor.prototype.method =
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










