为所有函数添加一行代码

Qui*_*ike 0 javascript class coffeescript

所以我在JS工作很多,而且我正在做很多事情(尽量保持模块化).当前我Event.fire('eventName')在每个函数结束时调用.我正在寻找一种方法让我的对象/类中的任何函数自动调用Event.fire([function name])所有函数的末尾

例:

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');
}
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 5

您可以尝试这样的操作,动态修改您的功能:

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]);
Run Code Online (Sandbox Code Playgroud)