构造函数模式通过函数定义对象结构,使用new创建实例,如Person构造函数生成person1和person2;new操作会创建新对象、绑定this、关联原型并执行构造逻辑;方法定义在prototype上可避免内存浪费;ES6的class是其语法糖,本质仍基于原型机制。

JavaScript 中的构造函数模式是一种创建对象的方式,它利用函数作为对象的模板,通过 new 关键字来生成实例。这种模式适合需要创建多个具有相同结构和行为的对象场景。
构造函数本质上是一个普通函数,但有以下特点:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log("你好,我是" + this.name);
};
}
const person1 = new Person("小明", 25);
person1.greet(); // 输出:你好,我是小明
当你使用 new 调用构造函数时,JavaScript 引擎会自动执行以下步骤:
直接在构造函数中定义方法(如上面的 greet)会导致每个实例都创建一份独立的方法副本,浪费内存。
解决办法是将方法挂载在 prototype 上:
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
console.log("你好,我是" + this.name);
};
const person1 = new Person("小明", 25);
const person2 = new Person("小红", 23);
console.log(person1.greet === person2.greet); // true,共用同一个方法
ES6 引入了 class 语法,它是构造函数的语法糖,更清晰易读:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("你好,我是" + this.name);
}
}
底层依然是基于原型和构造函数机制。
基本上就这些。构造函数模式是理解 JavaScript 面向对象编程的基础,掌握它有助于深入理解对象创建、原型链和继承机制。
以上就是js构造函数模式是什么的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号