Skip to content

Commit 5e2ed33

Browse files
committed
docs(class-extends): edit class-extends
1 parent 02928d1 commit 5e2ed33

File tree

3 files changed

+31
-3
lines changed

3 files changed

+31
-3
lines changed

docs/async.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ async function f() {
757757
// b
758758
```
759759

760-
上面代码中,`createAsyncIterable()`返回一个拥有异步遍历器的对象`for...of`循环自动调用这个对象的异步遍历器的`next`方法,会得到一个 Promise 对象。`await`用来处理这个 Promise 对象,一旦`resolve`,就把得到的值(`x`)传入`for...of`的循环体。
760+
上面代码中,`createAsyncIterable()`返回一个拥有异步遍历器接口的对象`for...of`循环自动调用这个对象的异步遍历器的`next`方法,会得到一个 Promise 对象。`await`用来处理这个 Promise 对象,一旦`resolve`,就把得到的值(`x`)传入`for...of`的循环体。
761761

762762
`for await...of`循环的一个用途,是部署了 asyncIterable 操作的异步接口,可以直接放入这个循环。
763763

docs/class-extends.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ let b = new B();
231231

232232
上面代码中,属性`x`是定义在`A.prototype`上面的,所以`super.x`可以取到它的值。
233233

234-
ES6 规定,在子类普通方法中通过`super`调用父类的方法(此时调用的是父类普通方法,因为`super`指向父类的原型对象)时,方法内部的`this`指向当前的子类实例;在子类静态方法中通过`super`调用父类的方法(此时调用的是父类静态方法,因为`super`指向父类)时,方法内部的`this`指向当前的子类;
234+
ES6 规定,在子类普通方法中通过`super`调用父类的方法时,方法内部的`this`指向当前的子类实例
235235

236236
```javascript
237237
class A {
@@ -314,6 +314,34 @@ child.myMethod(2); // instance 2
314314

315315
上面代码中,`super`在静态方法之中指向父类,在普通方法之中指向父类的原型对象。
316316

317+
另外,在子类的静态方法中通过`super`调用父类的方法时,方法内部的`this`指向当前的子类,而不是子类的实例。
318+
319+
```javascript
320+
class A {
321+
constructor() {
322+
this.x = 1;
323+
}
324+
static print() {
325+
console.log(this.x);
326+
}
327+
}
328+
329+
class B extends A {
330+
constructor() {
331+
super();
332+
this.x = 2;
333+
}
334+
static m() {
335+
super.print();
336+
}
337+
}
338+
339+
B.x = 3;
340+
B.m() // 3
341+
```
342+
343+
上面代码中,静态方法`B.m`里面,`super.print`指向父类的静态方法。这个方法里面的`this`指向的是`B`,而不是`B`的实例。
344+
317345
注意,使用`super`的时候,必须显式指定是作为函数、还是作为对象使用,否则会报错。
318346

319347
```javascript

docs/regex.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ const RE_DOLLAR_PREFIX = /(?<=\$)foo/g;
368368

369369
“后行断言”的实现,需要先匹配`/(?<=y)x/``x`,然后再回到左边,匹配`y`的部分。这种“先右后左”的执行顺序,与所有其他正则操作相反,导致了一些不符合预期的行为。
370370

371-
首先,”后行断言“的组匹配,与正常情况下结果是不一样的。
371+
首先,后行断言的组匹配,与正常情况下结果是不一样的。
372372

373373
```javascript
374374
/(?<=(\d+)(\d+))$/.exec('1053') // ["", "1", "053"]

0 commit comments

Comments
 (0)