diff --git a/docs/decorator.md b/docs/decorator.md index c8d0805..8aea41c 100644 --- a/docs/decorator.md +++ b/docs/decorator.md @@ -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)装饰器应用:实际执行装饰器函数,将它们与对应的方法和属性进行结合。 -原型方法的装饰器首先应用,然后是静态属性和静态方法装饰器,接下来是实例属性装饰器,最后是类装饰器。 +静态方法装饰器首先应用,然后是原型方法的装饰器和静态属性装饰器,接下来是实例属性装饰器,最后是类装饰器。 注意,“实例属性值”在类初始化的阶段并不执行,直到类实例化时才会执行。