Es6新增语法----class类
Es6新增语法----class类
关于类有两个概念,1,类自身,;2,类的实例对象
总的来说:静态的是指向类自身,而不是指向实例对象,主要是归属不同,这是静态属性的核心。
class中,用static修饰即为类(静态)方法(可直接类名访问),即在这个类(构造函数)对象本身身上的方法;实例方法,实例化对象身上的方法。两种挂在的内存区不一样;静态属性需要写在class外面,直接挂载到此类身上。
ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到
Es5和Es6相同点:
类的数据类型就是函数,类本身就指向构造函数。
在类的实例上调用方法,就是调用原型上的方法。
注意 :class 类的本质还是一个函数,类本身就指向构造函数。
若类的方法前加了static关键字,则该方法称为静态方法,反之为非静态方法。
静态方法的好处就是不用生成类的实例就可以直接调用。
通过二者的语法,不难发现如下特征:
在 es6中 class 类相当于es5中的function
且在es5中可以直接在构造函数中写this.属性名=属性值 给实例对象添加属性
而在es6中 需要在constructor 函数中写 this,属性名 = 属性值 给实例对象添加属性
总结:
定义“类”的方法时,不用加function关键字。
方法之间不要加逗号,加了会报错。
类中必须要有constructor方法,若没有显示定义,则一个空的会被添加。
类必须使用new调用。否则报错,这是类和构造函数的一个主要区别。
静态方法,实例对象不能直接访问。但是父类的静态方法,子类可以继承。
非静态方法,可以直接通过“实例对象.方法名”访问。
实例自身的属性,除非显示定义在this对象上,否则都是定义在原型上(即class上)。
上一篇: ES6 class
下一篇: ES6 Class类 ,模块