测验

如何创建构造函数?

主题
JavaScriptOOP
在GitHub上编辑

TL;DR

要在 JavaScript 中创建构造函数,请定义一个名称大写的常规函数,以表明它是一个构造函数。使用 this 关键字设置属性和方法。创建实例时,使用 new 关键字。

function Person(name, age) {
this.name = name;
this.age = age;
}
const john = new Person('John', 30);
console.log(john.age); // 30

如何创建构造函数?

定义构造函数

JavaScript 中的构造函数是一个用于创建对象的常规函数。按照惯例,构造函数的名称以大写字母开头,以区别于常规函数。

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

使用 this 关键字

在构造函数中,this 关键字用于引用将要创建的对象。可以将属性和方法分配给 this

function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function () {
console.log(
`Hello, my name is ${this.name} and I am ${this.age} years old.`,
);
};
}

创建实例

要创建对象的实例,请使用 new 关键字,后跟构造函数。

function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function () {
console.log(
`Hello, my name is ${this.name} and I am ${this.age} years old.`,
);
};
}
const john = new Person('John', 30);
john.greet(); // Output: Hello, my name is John and I am 30 years old.

将方法添加到原型

为了节省内存,最好将方法添加到构造函数的原型中,而不是在构造函数中定义它们。

function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function () {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};
const jane = new Person('Jane', 25);
jane.greet(); // Output: Hello, my name is Jane and I am 25 years old.

检查实例类型

您可以使用 instanceof 运算符检查对象是否是构造函数的实例。

function Person(name, age) {
this.name = name;
this.age = age;
}
const jane = new Person('Jane', 25);
console.log(jane instanceof Person); // Output: true

延伸阅读

在GitHub上编辑