📅  最后修改于: 2023-12-03 15:16:15.131000             🧑  作者: Mango
JavaScript 类构造函数是一种用于创建对象的特殊函数。它提供了一种定义对象属性和方法的模板,并可以通过实例化来创建具体的对象。
类构造函数的命名通常以大写字母开头,这是一种约定俗成的命名规范。
// 定义一个类构造函数
function Person(name, age) {
this.name = name;
this.age = age;
}
// 添加原型方法
Person.prototype.sayHello = function() {
return "Hello, my name is " + this.name;
};
在上面的例子中,Person
是我们定义的类构造函数,接受两个参数 name
和 age
。我们可以通过 this
关键字将这两个参数赋值给对象的属性。同时,我们也可以在原型对象上定义方法,这些方法将在实例化后的对象上共享。
要创建类的实例对象,我们可以使用 new
关键字调用类构造函数,并传递所需的参数。
// 创建一个 Person 对象实例
const person1 = new Person("Alice", 25);
上述代码中,person1
是一个 Person
类的实例对象,它拥有 name
和 age
这两个属性,以及 sayHello
方法。
通过点运算符或方括号运算符,我们可以访问类的实例对象的属性和方法。
// 访问属性
console.log(person1.name); // 输出:"Alice"
console.log(person1["age"]); // 输出:25
// 调用方法
console.log(person1.sayHello()); // 输出:"Hello, my name is Alice"
JavaScript 类构造函数也支持继承的概念。我们可以使用 extends
关键字创建一个子类。
// 定义一个子类构造函数
function Student(name, age, major) {
// 调用父类的构造函数
Person.call(this, name, age);
this.major = major;
}
// 继承父类原型方法
Student.prototype = Object.create(Person.prototype);
// 添加子类自己的方法
Student.prototype.getMajor = function() {
return "My major is " + this.major;
};
在上面的例子中,Student
是从 Person
类继承而来的子类。我们通过调用 Person.call(this, name, age)
来在子类构造函数中调用父类构造函数,以实现属性的继承。然后,我们通过 Object.create(Person.prototype)
将父类原型对象赋值给子类的原型对象,以实现方法的继承。
通过 JavaScript 类构造函数,我们可以定义对象的模板并创建实例对象。类构造函数可以包含属性和方法,同时也支持继承的特性。这为我们提供了一种面向对象的编程方式,使得代码更加可复用和可维护。