构造函数、运算符new
- 运算符new是在JavaScript中用于创建对象实例的关键字,用于实例化对象,即创建一个新的对象并调用该对象的构造函数。构造函数是常规函数,用于初始化新创建的对象,普遍约定以大写字母开头。可以使用构造函数创建多个相似的对象。
1. 语法
let obj = new Constructor();
这里的Constructor是一个构造函数,new关键字后面跟随一个函数调用,表示要使用该函数创建一个新的对象obj。
2. 步骤
- 创建一个空对象。
- 将空对象的__proto__属性指向构造函数的prototype属性。
- 将构造函数的上下文(this)设置为新创建的对象。
- 执行构造函数内部的代码,初始化对象。
- 若构造函数返回一个对象,则返回这个对象,否则返回新创建的对象。
- 例子,Person是一个构造函数,new关键字创建了一个名为person1的对象实例。
function Person(name, age) {
this.name = name;
this.age = age;
}
var person1 = new Person('John', 25);
3. 原型链
- 使用new运算符创建的对象会继承构造函数的原型链,通过原型链,对象可以访问构造函数的原型中定义的方法和属性。
- 如下,myDog对象可以访问Dog构造函数原型链上定义的bark方法。
function Dog(name) {
this.name = name;
}
Dog.prototype.bark = function() {
console.log(this.name + " says Woof!");
};
var myDog = new Dog('Buddy');
myDog.bark(); // 输出: Buddy says Woof!
- 关于原型链我会在另一篇文章详细介绍