返回

如此简单?——构造函数的构造与应用

前端

在上一节中,我们聊到了类,它是在ES6之后才出现的。在ES6之前,对象不是基于类创建的,而是一种称之为构造函数 的特殊函数来定义对象和它们的特征。

我们之前说过,创建对象有3种方法,分别是:

  1. 对象字面量:{name: "John Doe", age: 30}
  2. 构造函数:function Person(name, age) { this.name = name; this.age = age; }
  3. 原型对象:Person.prototype.greet = function() { console.log("Hello, my name is " + this.name); };

其中,构造函数是一个特殊的函数,它用于创建对象,并在创建对象时初始化对象的属性和方法。

构造函数的构造

构造函数的构造过程如下:

  1. 创建一个新的空对象。
  2. 将新对象作为this 的值。
  3. 执行构造函数的主体,为新对象添加属性和方法。
  4. 返回新对象。

例如,以下是一个构造函数Person ,它用于创建Person 对象:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

要使用这个构造函数创建对象,我们可以使用以下语法:

const person1 = new Person("John Doe", 30);

这个代码将创建一个新的Person 对象,并将对象的name 属性设置为"John Doe", age 属性设置为30

实例化

实例化是指使用构造函数创建对象的过程。实例化后的对象被称为实例

在JavaScript中,使用new 关键字来实例化对象。例如,以下代码实例化了Person 构造函数:

const person1 = new Person("John Doe", 30);

这个代码将创建一个新的Person 对象,并将对象的name 属性设置为"John Doe", age 属性设置为30

属性和方法

构造函数可以为对象添加属性和方法。

属性是对象的特征,它可以是任何值,如字符串、数字、布尔值、对象、数组等。方法是对象的函数,它可以执行特定的操作。

例如,以下构造函数Person 为对象添加了一个name 属性和一个greet 方法:

function Person(name, age) {
  this.name = name;
  this.age = age;

  this.greet = function() {
    console.log("Hello, my name is " + this.name);
  };
}

要访问对象的属性,可以使用点运算符(.`)。例如,以下代码访问person1 对象的name 属性:

console.log(person1.name); // John Doe

要调用对象的方法,可以使用点运算符和圆括号(()`)。例如,以下代码调用person1 对象的greet 方法:

person1.greet(); // Hello, my name is John Doe

总结

构造函数是JavaScript中创建对象的一种特殊函数。构造函数可以为对象添加属性和方法。使用new 关键字可以实例化构造函数,从而创建对象。