2017-10-10 47 views
1

考虑下面的JavaScript代码:方法装饰器的执行顺序是什么?

class Example { 

    @foo 
    public methodOne() {} 

    @bar 
    public methodTwo() {} 

} 

在将foobar执行什么样的顺序?请注意,我对variou JS引擎如何实现它不感兴趣,但根据规范,正确的方法是什么。我需要知道是否可以依赖这种行为在JS引擎中保持一致。

知道TypeScript装饰器是否具有相同的行为也很有趣。

+1

声明哪些顺序方法并不重要,并且首先装饰哪个方法应该没有关系。你想要做什么,你认为你需要依赖执行的顺序? – Bergi

+0

它用于一个路由器(截至目前还没有写入),你将用'@get(“index.htm”)'装饰方法来将它们映射到HTTP请求。 – Anders

+0

你的意思是你不会将它们映射到单个文件(显然没有重复),而是指向*规则*,它们的顺序应用在哪些方面很重要? TBH,我根本不会那样使用'class',甚至不使用方法 - 他们的名字是微不足道的。它应该是规则函数元组(对象)的列表(数组)。 – Bergi

回答

2

foo和bar会以什么顺序执行?

按照出现的顺序。所以foo然后bar