(function( window, undefined ){

/* * jQuery 소스 /

})(window);

jQeury 소스를 보면 저렇게 시작을 하는데요 인자에서 undefined 는 어떤 용도 인가요?

아래에서 받은 인자는 window 인데.... undefined는 어디서 나타난건인가요? ㅡㅡ;;

asked Jul 08 '11 at 16:00

J2P_Fedev's gravatar image

J2P_Fedev
11


두가지 이유인걸로 알고 있습니다.. 저도 저에 궁금해서 찾아봤는데...

  1. js에서 undefined 는 예약어가 아닙니다. 그래서 '값'을 바꿀 수 있죠. undefined = 'other value'; 그걸 방지하기 위해서 global의 undefined를 jquery의 익명 스코프 안으로 가져오는 겁니다.

  2. Frends오프모임때도 몇번 나왔던 이야긴데.. js는 변수를 찾을때 로컬 scope에서 부터 변수명을 찾을때 까지 global로 찾아 올라가죠. jquery안에서 undefined가 발생했을때 변수를 빨리 찾을 수 있도록 (global로 안가도 되게) local로 가져오는 겁니다.

아마 그럴겁니다. ㅎㅎ

answered Jul 08 '11 at 16:13

zziuni's gravatar image

zziuni
556

아... undefined 는 예약어가 아니라는걸 코뿔소책에서 본걸로 기억합니다.

그런 이유였군요~~ ^^

2번에서 하신 말씀은 제가 google+ 에서 Ext 질문했던 그 내용이네요.

Ext.global = window 해놨을때도 저런 효과가 있는건 아닐까 했었는데....

Ext.global = window 요건 좀 다른거 같네요 ^^;;

답변 감사합니다~

answered Jul 08 '11 at 16:20

J2P_Fedev's gravatar image

J2P_Fedev
11

적고 보니 그런거 같내요. ㅎㅎ

answered Jul 08 '11 at 16:23

zziuni's gravatar image

zziuni
556

내 답변
toggle preview

powered by OSQA