簡體   English   中英

在每個函數執行之前和之后調用特定的函數

[英]Call a particular function before and after each function execution

我需要在每個函數執行之前和之后調用一個特定的函數

例如我有這些功能

function a() {
    // logic
}

function b() {
    // logic
}

function c() {
    // logic
}

我現在正在做的是

function a(){
    c();
    // logic
    c();
}

function b(){
    c();
    // logic
    c();
}

有沒有更好的方法來做這件事,比如 Spring 中的建議

您可以像這樣定義一個“高階”輔助函數:

function wrapWith(baseFunc, otherFunc) {
    function wrapper() {
        otherFunc();
        baseFunc();
        otherFunc();
    }
    return wrapper;
}

然后只需定義a = wrapWith(a, c)b = wrapWith(b, c)等(如果您有時需要“解包” ab ,只需將包裝的版本分配給新變量而不是覆蓋ab .)

您可以嘗試創建一個包裝函數,它接受這兩個函數作為參數並按您想要的順序執行。

const wrapper = (logic, advice)=>{
advice();
let log  = logic()
advice()
return log
}

然后稱之為

wrapper(a,c)
wrapper (b,c);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM