mirror of
https://github.com/wangdoc/typescript-tutorial.git
synced 2025-12-20 16:55:06 +08:00
docs(decorator): fixed #84
This commit is contained in:
@@ -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)装饰器应用:实际执行装饰器函数,将它们与对应的方法和属性进行结合。
|
||||
|
||||
原型方法的装饰器首先应用,然后是静态属性和静态方法装饰器,接下来是实例属性装饰器,最后是类装饰器。
|
||||
静态方法装饰器首先应用,然后是原型方法的装饰器和静态属性装饰器,接下来是实例属性装饰器,最后是类装饰器。
|
||||
|
||||
注意,“实例属性值”在类初始化的阶段并不执行,直到类实例化时才会执行。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user