在现有功能中添加其他代码

时间:2014-06-18 18:40:49

标签: javascript

我的标题可能会产生误导,因为我可能选择了不好用的词来形容它,但是我的问题就出现了。

我有一个构造函数,它有很多方法。使用此构造函数创建的对象将传递给另一个和另一个构造函数的其他方法,这些构造函数可以向对象添加更多方法。

我的问题是我想执行一个函数调用,它必须在执行时由所有方法执行。我怎样才能做到这一点?

例如:

function foo(){
   this.method1=function(){}
   this.method2=function(){}
}

function run_this(){}

现在,我想添加到method1和method2,基本上是run_this,应该在运行方法之后但是在返回之前由它们执行,如果现在我调用this.method1来创建从foo创建的对象,它应该执行以下操作:

 this.method()
 run_this()

注意:请不要建议在方法调用中添加要执行的函数,因为就像我说的那样,它传递了各种其他可以分配其他函数的对象,并且我希望每个函数都分配给执行该函数调用。

1 个答案:

答案 0 :(得分:0)

尝试为包含method1method2的foo实例创建代理。

function fooProxy(foo){
   this.method1=function(){ 
    var result = foo.method1();
    run_this();
    return result;
   }
   this.method2=function(){ 
    var result = foo.method2();
    run_this();
    return result;
   }
}

function run_this(){}

var proxy = new fooProxy(someFoo);