ES6 class 模板说明

454 阅读1分钟

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.属性名

类的静态方法

  1. 在方法前面加关键字 static
  2. 静态方法不能在new实例中使用
  3. 静态方法也可以被继承
class A {
    static 方法名(参数){
        return 返回值
    }
}

类的静态属性

暂时通过ES5的语法来进行设置,因为typeof 出来,class还是一个function

class A {

}
A.静态属性名称 = 参数