docs(class): edit class

This commit is contained in:
ruanyf
2017-08-17 20:10:28 +08:00
parent 65d6aff64c
commit 2eb11d7026
4 changed files with 30 additions and 20 deletions
+20
View File
@@ -668,6 +668,26 @@ foo.classMethod()
上面代码中,`Foo`类的`classMethod`方法前有`static`关键字,表明该方法是一个静态方法,可以直接在`Foo`类上调用(`Foo.classMethod()`),而不是在`Foo`类的实例上调用。如果在实例上调用静态方法,会抛出一个错误,表示不存在该方法。
注意,如果静态方法包含`this`关键字,这个`this`指的是类,而不是实例。
```javascript
class Foo {
static bar () {
this.baz();
}
static baz () {
console.log('hello');
}
baz () {
console.log('world');
}
}
Foo.bar() // hello
```
上面代码中,静态方法`bar`调用了`this.baz`,这里的`this`指的是`Foo`类,而不是`Foo`的实例,等同于调用`Foo.baz`。另外,从这个例子还可以看出,静态方法可以与非静态方法重名。
父类的静态方法,可以被子类继承。
```javascript