ES6 Class

例子:class Bar{

    constructor(x,y){  //构造函数

        this.x = x;

        this.y = y;

    }

    toStuff(){

        console.log(this.x,this.y)

    }

    doStuff(){

        console.log('stuff');

    }

}

var b = new Bar(); //类初始化

b.doStuff();

var b2 = new Bar(2,3);

b2.toStuff();

表达式定义法:

const MyClass = class Me{

    getClassName(){

        return Me.name;

    }

}

let inst = new MyClass();

console.log(inst.getClassName());

Me.name //error

另一种方式:const MyClass=class{/* ... */};

立即执行的class:let person = new class

{

constructor(name){this.name=name;}

sayName(){console.log(this.name);}

}

('张三');person.sayName(); // "张三"

私有方法和私有属性:

classWidget{

 // 公有方法foo(baz){this._bar(baz);} 

// 私有方法_bar(baz){returnthis.snaf=baz;} // ...

}

_bar方法前面的下划线,表示这是一个只限于内部使用的私有方法。但是,这种命名是不保险的;

setter和getter方法:

class MyClass {

  constructor() {

  }

  get proptest() {

    return 'getter';

  }

  set proptest(value) {

    console.log('setter: '+value);

  }

}

let inst = new MyClass();

inst.proptest = 123;

// setter: 123

console.log(inst.proptest);

静态方法:

classFoo {    

static classMethod() 

{

    return'hello';

}

}

Foo.classMethod() // 'hello'

var foo=new Foo();

foo.classMethod()// TypeError: foo.classMethod is not a function

你可能感兴趣的:(ES6 Class)