1.先看看JS里类的写法
变形后的类的写法语法简洁明了
class Person{
constructor() {
this.name = 'aaa';
} //注意这里没有逗号
showName() { //注意这里没有function
}
}
2.属性名可以放表达式
let a = 'zzz';
let b = 'bbb';
chass Person{
[a + b] () { //写成这样形式也是可以的
}
}
这种写法与json是一样的
let a = 'aaa';
let b = 'bbb';
let json = {
[a + b] : 'xxxxxxxxxxxxx'
}
单独说明一下,使用class时,有一点要非常注意
注意1:ES6里面class不能进行作用域提升,但是在之前的ES5里面,用函数模拟是可以的,因为函数默认进行作用域(也叫做预解析)是可以提升的
注意2:ES6里面this比之前轻松多了
矫正this:
1.function.call(this指向谁,args1,args2...)
2.function.apply(this指向谁,[args1,args2...])
3.function.bind()
3.类里面新增的
class里面新增:取值函数(getter),存值函数(setter)
4.静态方法:就是类身上方法
static aaa() {
}
父类.aaa();
5.父类
子类
继承
之前使用继承非常的繁琐
现在ES6里面继承非常的简单
使用:extends
class Student extends Person{
}
当父类与子类里有同一个方法时,可以使用super
拖拽的示例