Es6 中的类和对象
1.对象
万物皆对象,对象是一个具体的事物。
对象由 属性 和 方法 组成:
属性: 事物的特征,在对象中用属性来表示(常用名词)
方法: 事物的行为,在对象中用方法来表示(常用动词)
2.类
在Es6中增加了类的概念,可以使用class关键字声明一个类,之后这个类来实例化对象。类抽象了对象的公共部分,它泛指某一大类(class),对象特指某一个,通过对象实例化一个具体的对象。
面向对象的思维特点:
(1)抽取(抽象)对象的公共的属性和行为组织(封装)成一个类(模板)。
(2)对类进行实例化,获取类的对象。
3. 创建类
语法:
class name {
// class body
}
创建实例:
var xx = new name();
注意: 类必须使用new实例化对象。
4. 类constructor构造函数
constructor()方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成实例对象时,自动调用改方法。如果没有显示定义,类内部会自动创建一个constructor()。
5. 类中添加方法
class Star {
constructor(uname, age) {
this.uname = uname;
this.age = age;
}
sing() {
console.log('我唱歌');
}
}
注:
(1)我们类里面所有的函数不需要写function;
(2)多个函数方法之间不需要添加逗号分隔。
三个注意点:
a. 在es6中类没有变量提升,所以必须先定义类,才能通过类实例化对象;
b. 类里面的共有的属性和方法一定要加this使用。
c. 类里面this的指向问题
d. constructor 中的this指向的是实例对象,方法里面的this指向的是这个方法的调用者。