2017-11-23 9 views
0

독립 실행 형 javascript 함수에 대해 meld.js (cujojs에서)를 사용하여 AOP를 구현하려고하면 Advice를 실행하지 않습니다. 나는 아래의 코드로 노력 해왔다. 독립 실행 형 javascript 함수에 대해 meld.js (cujojs)를 사용하여 AOP를 실행하면 작동하지 않습니다.

var meld = require("meld") 

function afterReturn(returnValue){ 
     console.log(returnValue); 
} 

function test(x,y) { 
     console.log(x); 
     console.log(y); 
     return x+y; 
} 

var remover = meld.afterReturning(test, afterReturn); 

test(5,6);

: 나는 어떤 객체 (묘) 내부의 기능을 포장

5

6하지만, 그것은 작동합니다. 어떤 개체 안에 함수를 래핑하고 싶지 않습니다.

var meld = require("meld") 

function x(returnValue) { 
    console.log(returnValue); 
} 

var myo = { 
    test : function(x,y) { 
     console.log(x); 
     console.log(y); 
     return x+y; 
    } 
} 

var remover = meld.afterReturning(myo,'test', x); 

myo.test(5,6);

: 내가 잘못하고있는 중이 야 어디

5, 6,

11 날 수정하시기 바랍니다 수 없습니다.

답변

0

JavaScript 함수는 신성하며 절대 외부에서 조작 할 수 없습니다. 함수를 직접 전달하는 경우 메서드가있는 객체 대신 반환 값은 권장 함수입니다.

는 afterReturning https://github.com/cujojs/meld/blob/master/docs/api.md#meldafterreturning

var advisedFunction = meld.afterReturning(functionToAdvise, afterReturningFunction);

+0

큰 @scothis에 대한 두 번째 코드 예제를 살펴 보자. 나는 문서에서이 부분을 읽지 못한 일부 사람들을 만났습니다. 링크를 가져 주셔서 감사합니다. 지금 일하고있어. –