javascript
Closure의 중요성
amugae
2017. 7. 8. 14:43
객체 만들고 이벤트를 걸고
이후 변동 되는 상황에 따라 Aop를 걸어서 이벤트 상황에 변동을 주려고 한다.
$("button").on("click", targetFn);
Aop.before("targetFn", advice, targetObj);
하지만 버튼을 눌러도 Aop적용이 되지 않는다.
함수를 바인딩 시킬 때는 Closure가 적용되어서 다른 객체가 된다.
Closure라는 이름이 왜 클로저인가 몰랐었는데
이렇게 원래 객체와 연결된 문을 닫아 버리기때문인 것 같다.
이벤트에 함수를 바인딩 시킬 때 이후 함수를 조작하고 싶다면
위와 같이 직접 바인딩 시키면 안된다.
$("button").on("click", function(){
targetFn();
});
위와 같이하면 이벤트 실행마다 현재 객체상태로 불러오게 된다.