js构造函数—11
好的!我们来深入讲讲 JavaScript 中的构造函数。这是理解 JavaScript 面向对象编程的基础。
什么是构造函数?
构造函数是一个特殊的函数,用于创建和初始化对象。当使用 new
关键字调用时,它会创建一个新对象,并将这个对象与构造函数的 prototype
关联起来。
基本语法
// 构造函数通常以大写字母开头(约定俗成)
function Person(name, age) {// this 指向新创建的对象实例this.name = namethis.age = age
}// 使用 new 关键字创建实例
const person1 = new Person('Alice', 25)
const person2 = new Person('Bob', 30)console.log(person1.name) // "Alice"
console.log(person2.age) // 30
new 关键字的作用机制
当使用 new
调用函数时,JavaScript 引擎会执行以下四个步骤:
function Person(name, age) {// 1. 隐式创建一个新对象:const obj = {}// 2. 设置原型链:obj.__proto__ = Person.prototype// 3. 将 this 绑定到新对象:this = objthis.name = namethis.age = age// 4. 如果函数没有返回对象,则隐式返回 this// return this;
}
构造函数的核心特性
1. 在原型上定义方法
为了内存效率,应该将方法定义在构造函数的 prototype
上:
function Person(name, age) {this.name = namethis.age = age
}// 方法定义在 prototype 上(所有实例共享)
Person.prototype.sayHello = function () {console.log(`Hello, I'm ${this.name}`)
}Person.prototype.getBirthYear = function () {const currentYear = new Date().getFullYear(