我可以在方法执行后合并方法吗?

时间:2019-06-28 07:52:04

标签: javascript aop cujojs

考虑我上课

 function home {}{
   this.door=function(){},
   this.tiles=function(){}
 }

在使用称为mel js(https://github.com/cujojs/meld/blob/master/docs/api.md#meldafter)的库调用方法后,我必须添加一些消息

我的尝试

var allMethods = new home();

   Object.keys(allMethods).forEach(function(k){

       aop.after(Object.prototype,key,function(){
            console.log('Dont use me i am old')
       });
  })

这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

您的方法是正确的,但是您的代码中有几个错误。 首先,home函数应具有()而不是{}

function home() {
    this.door=function(){},
    this.tiles=function(){}
}

第二,在您的AOP代码中,您需要将对象提供给after()方法,而不是原型。

var allMethods = new home();
Object.keys(allMethods).forEach(function(k){
    aop.after(allMethods,k,function(){
        console.log('Dont use me i am old')
    });
})

(此外,您需要使用变量k而不是key,因为这是forEach方法中定义的变量)

如果您将运行其中一种方法,则将获得所需的输出。

allMethods.door() // result 'Dont use me i am old'