天天看點

ES7之Decorators實作AOP示例

在ES7中Decorators,也是一個函數,我們隻需要在它前面加上@符号,并将它标注在特定的目标,如class、method等,則可以實作方法的包裹攔截。它的傳入參數有:target, name, descriptor。它們分别标記目标,标記目标名稱,以及目标描述資訊。在descriptor中,包括configurable、enumerable、writable,value四個屬性。它們分别可以控制目标的讀寫、枚舉,以及目标值。

是以我們可以如下實作:

首先我們将原來的方法體緩存起來,直到方法調用時,才會被調用以實作方法調用前後的日志攔截,列印相關資訊。示例的效果如下:

ES7之Decorators實作AOP示例

整個demo示例,你也可以在codepen上細細把玩:

本文轉自破狼部落格園部落格,原文連結:http://www.cnblogs.com/whitewolf/p/es7-decorators-log-aop.html,如需轉載請自行聯系原作者