Javascript绑定事件处理程序的另一个函数激活/结束

Javascript bind event handler of another function activating / ending

本文关键字:函数 激活 结束 另一个 绑定 事件处理 程序 Javascript      更新时间:2023-09-26

在Javascript中,是否有一些方法来绑定一个函数激活和结束的事件处理程序?

例如,我有两个函数:

function one() { console.log("this is function one") }

function two() { console.log("this is function two") }

我希望函数2在函数1被调用和结束时都激活。显然,我可以直接:

function one() { two(); console.log("this is function one"); two() }

但是那样会很无聊——远不如这样有趣。

嗯,你可以写一个函数,把原来的函数包装在另一个调用回调的函数中。

function bindStartEnd(originalFn, callback, thisArg) {
    return function() {
        var returnValue;
        callback();
        returnValue = originalFn.apply(thisArg || null, arguments);
        callback();
        return returnValue;
    };
}

可以这样使用:

function one() {
    console.log("This is function one");
}
function two() {
    console.log("This is function two");
}
var three = bindStartEnd(one, two);
three();

并且它可以扩展为也接受两个回调,一个用于开始,一个用于结束。你也可以想一个更好的名字