【问题标题】:Can i add method after method being executed meld aop我可以在方法执行后添加方法吗?
【发布时间】:2019-07-13 07:39:48
【问题描述】:

考虑一下我有课

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

在使用这个名为 meld 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')
       });
  })

这是一个正确的方法吗?

【问题讨论】:

    标签: javascript aop cujojs


    【解决方案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'
    

    【讨论】:

    • 当然。如果您不介意,我很高兴选择我的答案作为所选答案。
    • 支持问题,以便人们以后会发现它很有用。
    猜你喜欢
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2015-11-29
    • 2021-05-20
    相关资源
    最近更新 更多