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

时间:2015-09-16 00:30:04

标签: javascript

在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() }

但这很无聊 - 不像这种方式那么有趣。

1 个答案:

答案 0 :(得分:5)

好吧,你可以编写一个函数来将原始函数包装在另一个调用回调的函数中。

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();

它可以扩展为也接受两个回调,一个用于开头,一个用于结束。你可能还会想到一个更好的名字。