2017-10-10 82 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