첫번째의 경우

 

$(document).ready(function(){
 ...

});

-> window.onload = function() {}과 같은 기능

 

두번째의 경우

 

$(function(){
  ..

});
 

그냥 함수를 실행하라는 의미 입니다.

 

세번째의 경우

 

(function($){


})(jQuery);

 

이경우는 Jquery를 사용할 때, $ 달러의 의미를 jquery에서 사용하겠다는 의미가 내포되어 있습니다.

즉, $를 jquery만 사용하는 것이 아니라 다른 라이브러리에서도 사용할 수 있기 때문이에요.

만약 prototype.js 랑 jquery를 같이 사용하는 경우에는  $가 충돌이 발생하는 것입니다.

 

그래서 아예..

함수로 $를 매개변수로 해서 넘기는 것입니다.

jQuery 이것이 jquery 객체이지요.

저 함수안에서 $의 의미는 jquery 객체로 사용이 되는 것이에요..

 

prototype.js 와 jquery로 프로그래밍을 함께 병행하실 때는..

(function($){

...

..

..

   이 안에서만 jquery를 자유롭게 사용하게 됩니다.

...
})(jQuery);

 

 

출처 : 네이버지식인


===================================================================================


내가 이런 문법을 찾았던 이유는 jquery 때문은 아니었고

 

현대자동차 기업문화홍보 사이트의 소스를 보다가 처음보는 문장을 발견해서 찾기 시작했다..

 

여기서 나온 스크립트가 이것이었다..

        (function (w) {
            // version check
            var ua = window.navigator.userAgent;
            var msie = ua.indexOf("MSIE ");

            if (msie > 0 && parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)), 10) < 7) {
                location.href = '/pages/common/NoticeIE6.aspx';
            }
        })(window);

 

첨엔 이게 뭔가 싶었다...

 

그러다가 jquery 플러그인 소스에서 이런 비슷한걸 보았던것 같아 책을 보았고

 

플러그인 파트에서 아래와 같은 문장을 찾게 되었다.

 (function($){
  //
  // 여기에 플러그인을 정의한다
  //
 })(jQuery);

 

 $라는 매개변수를 정의한 함수에 jQuery를 전달하면 $는 함수안에서 jQuery의 참조임이 보장된다. 

$는 jquery의 별칭이라고 한다. 

  '왜 이렇게 되었는지는 별로 생각하고 써본적이 없었는데

  jQuery를 $ 로 정의한 함수에 전달하기 때문에 $가 jquery의 별칭이 될수 있지 않나...'

  라는 생각을 해본다.ㅋ

이를통해 플러그인을 정의할 때 핵심 내용을 작성하는데 $를 사용할 수 있다.

물론 현대차 홍보페이지의 소스랑은 다르지만 이것과 비슷한 의미리라 생각한다.ㅋ

 

좋은 가르침이었다ㅋ

 

내가 이해한게 제대로 된건가.. 싶다..ㅋㅋ

'Programming > jQuery' 카테고리의 다른 글

[jquery] 패스워드 에러 표현 innerHtml  (0) 2017.03.27
[ajax]multipart form 전송  (0) 2016.10.13
JQuery.each()  (0) 2015.07.15

+ Recent posts