一、概述
JavaScript是一种面向对象的脚本语言,它支持类和继承,使得代码更加模块化和可重用。通过面向对象编程,我们可以创建具有属性和方法的对象,以及定义类来创建对象的模板。
二、创建对象
在JavaScript中,可以使用字面量方式或构造函数来创建对象。
- 字面量方式
使用字面量方式创建对象非常简单,只需要指定对象的属性和方法即可。
let person = {
name: "张三",
age: 25,
greet: function() {
console.log("你好," + this.name + "!");
}
};
在这个例子中,我们创建了一个名为person的对象,它有两个属性(name和age)和一个方法(greet)。使用this关键字可以引用对象的属性。
- 构造函数方式
构造函数是一种用于创建对象的函数。使用构造函数可以让我们更灵活地创建具有相同属性和方法的对象。
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log("你好," + this.name + "!");
};
}
let person = new Person("张三", 25);
在这个例子中,我们定义了一个名为Person的构造函数,它接受两个参数(name和age),并定义了一个方法(greet)。使用new关键字可以创建一个新的Person对象。
三、继承
在JavaScript中,可以使用原型链来实现继承。每个JavaScript对象都有一个指向其原型的内部链接。原型是另一个对象,其属性可以被子对象继承。
- 原型方式
通过将一个对象的原型设置为另一个对象的实例,可以实现继承。
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
console.log("你好," + this.name + "!");
};
function Student(name, age, studentId) {
Person.call(this, name, age); // 调用父类构造函数
this.studentId = studentId;
}
Student.prototype = Object.create(Person.prototype); // 设置原型链
Student.prototype.constructor = Student; // 修复构造器指向
在这个例子中,我们定义了一个名为Person的构造函数,并为其定义了一个方法(greet)。然后,我们定义了一个名为Student的构造函数,它继承了Person的属性和方法,并添加了一个新的属性(studentId)。通过将Student.prototype设置为Object.create(Person.prototype),我们可以实现继承。最后,我们使用Student.prototype.constructor = Student来修复构造器指向。