그러나 고급 개발자로 나아가고 대규모의 프로젝트를 진행하는데에 있어 중요한 부분이 메모리 관리가 아닐까 싶다.
흔히 사용했던 아래와 같은 코드가 순환 참조로서 메모리 누출을 일으킨다고 한다.
IE는 완전히 다시 시작되기 전까지는 el와 o에 의해 사용되는 메모리를 반환하지 못한다.
function leakMemory() { var el = document.getElementById('el'); var o = { 'el': el }; el.o = o; }
해당 코드는 아래와 같이 해결할 수 있다고 한다.
function addHandler() { var el = document.getElementById('el'); el.onclick = function() { this.style.backgroundColor = 'red'; } el = null; }
또다른 클로저를 이용하는 다른 방법.
function addHandler() { var clickHandler = function() { this.style.backgroundColor = 'red'; } (function() { var el = document.getElementById('el'); el.onclick = clickHandler; })(); }
* 참고
https://developer.mozilla.org/ko/docs/A_re-introduction_to_JavaScript
댓글 없음:
댓글 쓰기