2012-05-08 2 views
5

방금 ​​Syncfusion에서 jQuery 간결 무료 전자 서적 (here)을 다운로드하고 예제를 살펴보기 시작했습니다.jQuery 간결한 구문 설명

<script> (function ($) 
{ 
    $('a').mouseenter(
     function() { alert(this.id); }); 
})(jQuery); 
</script> 

저자는이 구문을 사용하는 이유를 잘 모르겠어요 :

나는 것은 이런 종류의를 많이 참조하십시오. $ 개체가 익명 함수로 전달되고 있습니까? 왜? 익명 기능을 수행 한 후 (jQuery)은 무엇입니까?

다른 라이브러리와의 충돌을 피하는 간단한 방법입니까? 이 예제들은 훨씬 더 "간결하게"쓰여질 수 있습니다. :)

고마워요.

답변

7

$.noConflict()을 사용하여 글로벌 jQuery $을 제거한 경우에도 $ === jQuery 인 폐쇄가 작성됩니다.

이렇게하면 사용자가 예일 때 항상 걱정하지 않고 $을 사용할 수 있습니다. 또한 $을 사용하는 프로토 타입과 같은 프레임 워크를 사용합니다.

가 폐쇄은 또한 당신의 변수/함수를 사용하면 명시 적으로 (var을 사용하고 window 또는 this 객체에 대한 기능을 부착하지 않음으로써)들이 글로벌하지 않는 한 글로벌하지 않는 장점이있다

+0

나보다 몇 초 앞당겨. : / –

4

예, 이것은 간결 방법 다른 라이브러리와의 jQuery 충돌을 피할 수 있습니다. 그것은 "폐쇄"라고합니다. 즉, 변수 $은 해당 함수에 범위가 지정되어 있으며 외부에서 아무런 피해없이 사용할 수 있습니다.