함수 끝 괄호 다음에

질문:

저는 Magento 사이트에서 일합니다.Magento의 원형을 가져올 때 문제가 발생했습니다.js는 jQuery를 잘 사용할 수 있습니다.나는 이미 나의 모든 jQuery가 jQuery를 사용해야 한다는 것을 읽었다.충돌 없음().나는 이미 이렇게 했지만, 여전히 약간의 문제가 있다.나는 이미 몇몇 함수의 오른쪽 괄호 뒤에 따르는 것을 보았다. (jQuery)
무엇을 위한 것인지 알고 싶습니다. (jQuery.noConflict () 로 변경해야 합니까?

답안

이 점 이전(JQuery 라이브러리 포함 후) 호출(jQuery)만 하면 (jQuery.noConflict())jQuery.noConflict()로 변경할 필요가 없다.
알다시피 충돌 모드가 없는 jQuery를 사용할 때 jQuery 대신 $ 를 사용해야 합니다.
그러나 다음과 같이 즉시 호출 함수 표현식(IIFE)에 배치된 코드에서 $ 대신 jQuery를 사용할 수 있습니다.
(function($) {
    // Code here can use $, instead of jQuery.
})(jQuery);
IIFE는 익명 함수를 정의하고 즉시 호출하는 것입니다.위의 코드에서 jQuery 대상은 매개 변수로 익명 함수에 전달되는데 매개 변수의 이름이 $이기 때문에 $는 함수 중의 jQuery 대상을 나타낸다.
또한 jQuery 객체가 document ready 이벤트에 첫 번째 매개 변수로 전달되는 콜백 함수이므로 다음을 수행할 수 있습니다.
jQuery(function($) {
    // Code here can use $, instead of jQuery.
});
다음과 같습니다.
jQuery(document).ready(function($) {
    // Code here can use $, instead of jQuery.
});
IIFE에서 var로 선언한 변수는 글로벌 변수가 아닙니다.이것은 보통 좋은 일이며 IIFES를 사용하는 또 다른 이유이기도 하다.IIFE에서 글로벌 변수를 선언하려면 해당 변수를 window 객체의 속성으로 참조해야 합니다.
<script type="text/javascript">
var a = 1; // This is a global variable.
(function($) {
    var b = 2; // This is NOT a global variable.
    window.c = 3; // This is a global variable.
})(jQuery);
<script>