JS面向对象

96 阅读2分钟

一、概述

JavaScript是一种面向对象的脚本语言,它支持类和继承,使得代码更加模块化和可重用。通过面向对象编程,我们可以创建具有属性和方法的对象,以及定义类来创建对象的模板。

二、创建对象

在JavaScript中,可以使用字面量方式或构造函数来创建对象。

  1. 字面量方式

使用字面量方式创建对象非常简单,只需要指定对象的属性和方法即可。

	let person = {  

	  name: "张三",  

	  age: 25,  

	  greet: function() {  

	    console.log("你好," + this.name + "!");  

	  }  

	};

在这个例子中,我们创建了一个名为person的对象,它有两个属性(nameage)和一个方法(greet)。使用this关键字可以引用对象的属性。

  1. 构造函数方式

构造函数是一种用于创建对象的函数。使用构造函数可以让我们更灵活地创建具有相同属性和方法的对象。

	function Person(name, age) {  

	  this.name = name;  

	  this.age = age;  

	  this.greet = function() {  

	    console.log("你好," + this.name + "!");  

	  };  

	}  

	let person = new Person("张三", 25);

在这个例子中,我们定义了一个名为Person的构造函数,它接受两个参数(nameage),并定义了一个方法(greet)。使用new关键字可以创建一个新的Person对象。

三、继承

在JavaScript中,可以使用原型链来实现继承。每个JavaScript对象都有一个指向其原型的内部链接。原型是另一个对象,其属性可以被子对象继承。

  1. 原型方式

通过将一个对象的原型设置为另一个对象的实例,可以实现继承。

	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来修复构造器指向。