es6中Class的静态方法详解

来源:互联网 发布:动画知已图片 编辑:程序博客网 时间:2024/06/16 10:05

以前看过的es6的东西,又忘了,再总结下:

类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”

class Foo {    static classMethod() {        return 'hello';    }}Foo.classMethod() // 'hello'var foo = new Foo();foo.classMethod()// TypeError: foo.classMethod is not a function

上面代码中,Foo类的classMethod方法前有static关键字,表明该方法是一个静态方法,可以直接在Foo类上调用(Foo.classMethod()),而不是在Foo类的实例上调用。如果在实例上调用静态方法,会抛出一个错误,表示不存在该方法。

  父类的静态方法,可以被子类继承。

class Foo {    static classMethod() {        return 'hello';    }}class Bar extends Foo {}Bar.classMethod(); // 'hello'

上面代码中,父类Foo有一个静态方法,子类Bar可以调用这个方法。

原创粉丝点击