javascript – 为所有函数添加一行代码

所以我在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]);
上一篇:在多维数组javascript或coffeescript中获得最大价值


下一篇:将d3.js JavaScript函数转换为CoffeeScript