@ Javascript는 내부함수(inner function)정의를 지원하는 프로그래밍 언어이다.
@ function outerFn(){ function innerFn(){} } 이런 구조에서 innerFn은 outerFn안에서 호출되어야 한다. innerFn을 다른 곳에서 호출하기 위해서는 전역변수에 innerFn을 담고 outerFn을 호출한후 전역변수를 사용하거나 outerFn에서 반환을 innerFn을 하여 그것을 외부에서 변수에 담아 사용할 수 있다.
@ 함수가 정의된 범위 밖에서 그 내부 함수를 참조할 때 클로저(Closure)가 만들어진다. 바깥 함수의 환경이 내부함수의 지역변수가 아니면서 내부함수에서 사용되는 자유 변수(free variable)들을 닫는역할을 한다.
@ this는 함수의 매개변수나 지역 변수가 아니며 특별한 자바스크립트 키워드다. 함수 내부에서는 window 개체를 가리키며 jQuery 이벤트 처리기에서는 this가 이벤트를 처리하는 DOM 요소를 가리킨다. 고로 jQuery를 사용하려면 jQuery래퍼로 객체를 감싸야 한다.
@ 플러그인 메서드 내부에서 this 키워드는 현재 jQuery 객체를 가리킨다.
jQuery.fn.showAlert =function(){ alert('You selected '+this.length+' elements.'); };