JavaScript 构造函数
在JavaScript的对象世界里,构造函数是一种特殊的函数,用于创建新对象并初始化其属性和方法。构造函数就像一个"对象工厂",能够批量生产具有相同结构的对象,帮助我们避免重复编写相似的代码。
什么是构造函数?
构造函数本质上是一个普通的JavaScript函数,但它有两个重要的特点:
- 函数名通常以大写字母开头(这是一种编程约定,帮助识别它是构造函数而非普通函数)
- 使用
new
关键字来调用该函数以创建新对象
备注
构造函数是创建多个相似对象的"蓝图"或"模板",这种面向对象的编程方式在开发复杂应用时非常有用。
基础语法
// 定义构造函数
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
return "你好,我是" + this.name + ",今年" + this.age + "岁";
};
}
// 使用构造函数创建对象
const person1 = new Person("张三", 25);
const person2 = new Person("李四", 30);
// 调用对象方法
console.log(person1.sayHello()); // 输出: 你好,我是张三,今年25岁
console.log(person2.sayHello()); // 输出: 你好,我是李四,今年30岁
工作原理详解
当我们使用new
关键字调用构造函数时,JavaScript会执行以下步骤:
- 创建一个新的空对象(
{}
) - 将这个新对象的
__proto__
属性链接到构造函数的prototype
属性 - 将构造函数内部的
this
绑定到新创建的对象 - 执行构造函数内部的代码(通常用于添加属性和方法)
- 如果构造函数没有返回其他对象,则自动返回这个新创建的对象