class内this默认指向当前类。
function创建的方法 this 指向window,谁new实例化就指向谁。class在ES6中,也只是ES5的语法糖
创建一个类 A
class A {
//类的构造函数
constructor(传递的参数){
this.属性 = 参数
}
//获取属性拦截
get 属性(){
return 参数/做标记的参数
}
//设置属性拦截
set 属性(获取传参){
//为什么要用构造函数里面做标记的属性?因为如果不用另外一个来保存,就会一直设置,死循环
this.做标记的属性 = 获取的传参
}
方法名(){
}
}
类的继承
创建另外一个类B,扩展类A进来, 是通过构造函数内的super(传递的参数)传参给A的,其他都一样
class B extends A {
constructor(传递的参数){
super(传递给A的参数)
this.属性 = 参数
}
}
//new一个对象出来,因为扩展了A,所以A的方法、属性都可以用得到了
let b = new B(传递参数)
//这里可以用到A的方法可的
b.方法()
//有属性拦截的用法,注意是get 、set不带括号
//set
b.属性名 = ‘参数’
//get
let c = b.属性名
类的静态方法
- 在方法前面加关键字 static
- 静态方法不能在new实例中使用
- 静态方法也可以被继承
class A {
static 方法名(参数){
return 返回值
}
}
类的静态属性
暂时通过ES5的语法来进行设置,因为typeof 出来,class还是一个function
class A {
}
A.静态属性名称 = 参数