new运算符是用来创建用户定义对象类型(构造函数)或内置对象类型(如Array,Date等)的实例的。
当使用new运算符时,JavaScript执行以下步骤:
- 创建一个全新的对象。
- 这个新对象会被执行[[原型]]连接,即新对象的
__proto__属性指向构造函数的prototype属性。 - 构造函数内部的
this被绑定到这个新对象上。 - 执行构造函数内部的代码(为这个新对象添加属性和方法)。
- 如果构造函数返回非空对象,则返回该对象;否则,返回刚创建的新对象。
下面是一个使用new运算符创建对象实例的例子:
function Person(name, age) {
this.name = name;
this.age = age;
}
var person1 = new Person("Alice", 25);
console.log(person1.name); // 输出 "Alice"
console.log(person1.age); // 输出 25
- 使用
new运算符创建了一个Person构造函数的实例,并将this绑定到这个实例上。 - 然后给这个实例添加了
name和age属性。 - 最后,
person1变量引用了这个新创建的实例。
这是JavaScript面向对象编程的基础,它允许开发者通过定义构造函数来创建具有相似属性和方法的对象。