2011-01-12 2 views
10

좋아요. 그래서 프로젝트에 대한 js 라이브러리를 직접 작성하고 질문이 있습니다.jQuery가 윈도우 객체를 해당 범위로 전달하는 이유

(function() { 
// my code here 
})(); 

이제 내 질문은 이것이다 : 내가 jQuery를 창 개체에 전달하고이 같은 자신의 문서 객체를 설정 통지 거기에 다른 대부분의 도서관처럼, 나는이 내 코드를 포장하고 내 변수 범위를 보존하기 :

(function(window) { 
var document = window.document; 
})(window); 

왜 이런 이유가 있는지 알고 계십니까?

+1

흠 .. 그 축소 된 코드를보고 .. 내 변수 "document"가 "E"가되어 파일 크기가 줄어들 기 때문에이 작업을 수행 할 것입니다. 이게 옳은 거니? –

+1

이렇게하면 창을 전역 범위에서 벗어납니다. –

답변

14

예! 이 함수의 은 이제 로컬 변수이므로 해당 이름을 축소 할 수 있습니다. 또한 로컬 변수에 대한 액세스가 글로벌 변수에 대한 액세스보다 빠릅니다.

1

당신은 또한 당신이 변수 이름 "창"을 단축 할 수, 지역 바르에 빠르게 액세스 할 수있는 같은과 (심지어는 "문서") :

(function(w, d)(){ 

    // use w and d var 

})(window, document) 
+0

비록 그것이 가능하다해도, 당신이 개발 중일 때 minifier가 일을 할 것이기 때문에 나는 지방 주민을 너무 많이 줄이는 것을 추천하지 않을 것이다. 코드를 명확하고 읽기 쉬운 상태로 유지하는 것이 좋습니다. –

관련 문제