1

クラスがあると考えてください

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

これは正しいアプローチですか?

4

1 に答える 1

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ありません)keyforEach

いずれかのメソッドを実行すると、目的の出力が得られます。

allMethods.door() // result 'Dont use me i am old'
于 2019-07-12T23:39:48.233 に答える