当使用new
关键字调用一个构造函数时,它会执行以下操作:
- 创建一个新的空对象。
- 将该空对象的原型链指向构造函数的原型对象。
- 将构造函数的
this
指向新创建的空对象。 - 执行构造函数中的代码,将属性和方法添加到新创建的对象中。
- 如果构造函数没有显式地返回一个对象,则返回新创建的对象。
下面是一个简单的示例来说明new
关键字的作用:
// 定义一个构造函数
function Person(name, age) {
this.name = name;
this.age = age;
}
// 使用new关键字调用构造函数创建一个对象
const person1 = new Person("Alice", 25);
console.log(person1.name); // 输出:Alice
console.log(person1.age); // 输出:25
在上述示例中,使用new
关键字调用构造函数Person
,它会创建一个新的空对象,并将该空对象的原型链指向Person
构造函数的原型对象。然后,构造函数中的代码将执行,将name
和age
属性添加到新创建的对象中。最后,新创建的对象person1
被返回,并可以对其进行访问和操作。
需要注意的是,使用new
关键字调用构造函数时,构造函数中的this
指向新创建的对象,而不是全局对象。这使得我们可以在构造函数中使用this
来访问和修改新对象的属性和方法。