在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() }
但这很无聊 - 不像这种方式那么有趣。
答案 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();
它可以扩展为也接受两个回调,一个用于开头,一个用于结束。你可能还会想到一个更好的名字。