所以我在JS工作很多,而且我正在做很多事情(尽量保持模块化).当前我在每个函数的末尾调用Event.fire(‘eventName’).我正在寻找一种方法让我的对象/类中的任何函数在所有函数的末尾自动调用Event.fire([函数名])
例:
function MyClass(){
this.on('someFunc', this.funcTwo);
this.someFunc();
}
MyClass.prototype.on = function( event ){
// the event stuff //
}
MyClass.prototype.someFunc = function(){
console.log('someFunc');
}
MyClass.prototype.funcTwo = function(){
console.log('funcTwo');
}
解决方法:
您可以尝试这样的操作,动态修改您的功能:
var obj = MyClass.prototype;
for (var prop in obj)
if (typeof obj[prop] == "function") // maybe also prop != "on" and similar
(function(name, old) {
obj[prop] = function() {
var res = old.apply(this, arguments);
Event.fire(name);
return res;
};
})(prop, obj[prop]);