javascript - 向所有函数添加一行代码

标签 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');
}

最佳答案

您可以尝试这样的方法,动态修改您的函数:

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 - 向所有函数添加一行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618309/

相关文章:

javascript - 简单立方体-三个JS

c# - 如何使用 C# 在类中使用 Datareader

javascript - 按 enter 时 jQuery UI 自动完成字段不提交

backbone.js - 模式的 Backbone 路由器

python - 如何为python自定义类进行类型转换

node.js - Node : Uploading plain text to s3 via Knox and I get statusCode = 505?

javascript - 在列表的最后添加 div,但我在设计中遇到错误

javascript - `useState` ,仅当对象中的值发生变化时更新组件

javascript - 如何预处理 CoffeeScript 或将 CoffeeScript 包含在 CoffeeScript 中?

JavaScript:如何在调用 new 后对类进行字符串化