方法装饰器的执行顺序是什么?
问题描述:
考虑下面的JavaScript代码:方法装饰器的执行顺序是什么?
class Example {
@foo
public methodOne() {}
@bar
public methodTwo() {}
}
在将foo
和bar
执行什么样的顺序?请注意,我对variou JS引擎如何实现它不感兴趣,但根据规范,正确的方法是什么。我需要知道是否可以依赖这种行为在JS引擎中保持一致。
知道TypeScript装饰器是否具有相同的行为也很有趣。
答
foo和bar会以什么顺序执行?
按照出现的顺序。所以foo
然后bar
。
声明哪些顺序方法并不重要,并且首先装饰哪个方法应该没有关系。你想要做什么,你认为你需要依赖执行的顺序? – Bergi
它用于一个路由器(截至目前还没有写入),你将用'@get(“index.htm”)'装饰方法来将它们映射到HTTP请求。 – Anders
你的意思是你不会将它们映射到单个文件(显然没有重复),而是指向*规则*,它们的顺序应用在哪些方面很重要? TBH,我根本不会那样使用'class',甚至不使用方法 - 他们的名字是微不足道的。它应该是规则函数元组(对象)的列表(数组)。 – Bergi