mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2024-04-21 12:32:22 +00:00
docs(class): edit class
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user