以前看过的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可以调用这个方法。
相关推荐:
es6中class关键字详解
es6 class 中的 super 关键字详解
es6 javascript中class类的get与set用法实例
以上就是es6中class类的静态方法的详细内容。