es6 class

作者: 不再犹豫Debug | 来源:发表于2019-08-18 09:31 被阅读0次

学习class的人肯定是有一定基础了,那我也是。哈哈,所以关于class的东西我就类似于流水账的方式大概写一下常用的东西。

 class MyClass{
  // 构造函数
  constructor(prop){
    // 属性初始化
    this.prop = prop
  }
  // getter
  get prop(){
    console.log('getter');
    return 'getter';
  }
  // setter
  set prop(value){
    console.log('setter' + value);
  }
  // 成员方法
  sayClass(){
    console.log(this.prop);
  }
  // 静态方法
  static sayHi () {
    console.log("Hi~");
  }
}

let inst = new MyClass();
inst.prop
// inst.prop = 123;

上述代码中生命了一个叫'MyClass'的类。它里面包括构造函数constructor,getter方法,setter方法,成员方法,静态方法。下面依次说这些方法的怎么使用。

构造函数constructor

constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,也不会报错。但是会默认添加一个空的constructor方法。一般我们用constructor来初始化类的属性。

constructor(prop){
  // 属性初始化
    this.prop = prop
  }

当然属性的声明也可以写在constructor外面,跟方法同级。

class MyClass{
  prop = '默认值'
  // 构造函数
  constructor(prop){
    // 属性初始化
    this.prop = prop
  }
  sayHi(){
    console.log('hi');
  }
}

let inst = new MyClass();
inst.prop
// inst.prop = 123;

getter/setter

两个必须搭配使用,单独写一个会报错。用过vuex等状态管理的应该都明白它的意思。其实就是一个拦截该属性的存取行为的方法。

static

静态方法。跟普通方法不同的是,只要该方法只能通过class调用,new的实例不会继承该方法。

MyClass.sayHi() // 对

let inst = new Myclass();
inst.sayHi() // 错

成员方法

不用多说了。

相关文章

网友评论

      本文标题:es6 class

      本文链接:https://www.haomeiwen.com/subject/inzlsctx.html