在每次执行函数之前和之后调用特定的函数

时间:2019-02-06 11:17:31

标签: javascript function

我需要在每次执行函数之前和之后调用特定函数

例如 我有这些功能

function a() {
    // logic
}

function b() {
    // logic
}

function c() {
    // logic
}

我现在正在做什么

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

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

是否有更好的方法可以在春季完成类似建议的操作

2 个答案:

答案 0 :(得分:2)

您可以像这样定义“高阶”辅助函数:

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

然后只需定义a = wrapWith(a, c)b = wrapWith(b, c)等(如果您有时需要使用“解包的” ab,只需将包装的版本分配给new变量而不是覆盖ab。)

答案 1 :(得分:0)

您可以尝试创建一个包装器函数,该函数接受这两个函数作为参数并按所需顺序执行。

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

然后将其命名为

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