docs(decorator): fixed #84

This commit is contained in:
ruanyf
2023-11-22 00:07:23 +08:00
parent fcf6e6ecbd
commit 8ad5fc69f7

View File

@@ -818,6 +818,9 @@ class T {
@d('实例属性')
instanceField = log('实例属性值');
@d('静态方法装饰器')
static fn(){}
}
```
@@ -826,16 +829,18 @@ class T {
它的运行结果如下。
```typescript
// "评估 @d(): 类装饰器"
// "评估 @d(): 静态属性装饰器"
// "评估 @d(): 原型方法"
// "计算方法名"
// "评估 @d(): 实例属性"
// "应用 @d(): 原型方法"
// "应用 @d(): 静态属性装饰器"
// "应用 @d(): 实例属性"
// "应用 @d(): 类装饰器"
// "静态属性值"
@d():
@d():
@d():
@d():
@d():
@d():
@d():
@d():
@d():
@d():
```
可以看到,类载入的时候,代码按照以下顺序执行。
@@ -846,7 +851,7 @@ class T {
2装饰器应用实际执行装饰器函数将它们与对应的方法和属性进行结合。
原型方法装饰器首先应用,然后是静态属性和静态方法装饰器,接下来是实例属性装饰器,最后是类装饰器。
静态方法装饰器首先应用,然后是原型方法的装饰器和静态属性装饰器,接下来是实例属性装饰器,最后是类装饰器。
注意,“实例属性值”在类初始化的阶段并不执行,直到类实例化时才会执行。