# 2.ES6中的类和对象

# 面向对象

面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物,但是十五分为具体的事物和抽象的事物

抽象: 手机——泛指一类事物

具体: 我手上的手机——具体指定了某一个具体事物

面向对象的思维特点:

  1. 抽取(抽象)对象公用的属性而黑行为组织(封装)成一个类(模板)
  2. 对类进行实例化,获取类的对象

面向对象编程考虑的是有哪些对象,按照面向对象的思维特点,不断的创建对象,使用对象,指挥对象做事情

# 2.1 对象

在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等

对象是由属性和方法组成的:

  • 属性:事物的特征,在对象中用属性来表示(常用名词)
  • 方法:事物的行为,在对象中用方法来表示(常用动词)

# 2.2 类 class

在ES6中新增了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象。

类抽象了对象的公共部分,它泛指某一个大类(class)

比如上文提及的 手机

对象特指某一个,通过类实例化一个具体的对象

比如上文提及的 我的手机

# 2.3 创建类

语法:

class name {
	// class body
}

创建实例:

var xx = new name();

举个例子:

class Person{
	
}
var zhangsan = new Person();

# 2.4 类 constructor 构造函数

constructor() 方法是类的构造函数(默认方法),用于传递参数返回实例对象,通过new命令生成对象实例时,自动调用该方法。

如果没有显式定义,类内部会自动创建一个 constructor()

class Person{
	constructor(name, age) {
		this.name = name;
         this.age = age;
	}
}
var zhangsan = new Person('张三', 18);
console.log(zhangsan.name);
console.log(zhangsan.age);

# 2.5 类添加方法

语法:

class Person{
	constructor(name, age){
		this.name = name;
		this.age = age;
	}
	// 添加方法——drink
    // 不需要写 function
    // 多个函数方法之间不需要添加逗号分割
	drink () {
		console.log(this.name + '正在喝水');
	}
    // 带参
    study (subject) {
        console.log(this.name + '正在学习' + subject);
    }
}

实例:

var zhangsan = new Person('张三', 18);
// 调用
zhangsan.drink();
zhangsan.study('犯罪心理学');
更新时间: 7/1/2021, 7:56:56 PM