다음과 같은 속기 $(document).ready
입니까?
(function($){
//some code
})(jQuery);
이 패턴이 많이 사용되는 것을 보았지만 이에 대한 참조를 찾을 수 없습니다. 의 약어 인 경우 $(document).ready()
작동하지 않는 특별한 이유가 있습니까? 내 테스트에서 항상 준비 이벤트 전에 시작되는 것 같습니다.
다음과 같은 속기 $(document).ready
입니까?
(function($){
//some code
})(jQuery);
이 패턴이 많이 사용되는 것을 보았지만 이에 대한 참조를 찾을 수 없습니다. 의 약어 인 경우 $(document).ready()
작동하지 않는 특별한 이유가 있습니까? 내 테스트에서 항상 준비 이벤트 전에 시작되는 것 같습니다.
답변:
줄임말 $(document).ready(handler)
은 $(handler)
( handler
기능이있는 곳 )입니다. 여기를 참조 하십시오 .
귀하의 질문에있는 코드는와 아무런 관련이 없습니다 .ready()
. 오히려 jQuery 객체를 인수로 사용하여 즉시 호출되는 함수 표현식 (IIFE)입니다. 그 목적은 최소한 $
변수 의 범위를 자체 블록 으로 제한하여 충돌을 일으키지 않는 것입니다. 일반적으로 jQuery 플러그인이 사용하는 패턴을 확인합니다 $ == jQuery
.
iife
하거나 Cowboy Alman의 유명한 블로그 게시물로 건너 뜁니다 . 세부 사항…
속기는 다음과 같습니다.
$(function() {
// Code here
});
$
입니다. 추가 할 수도 있습니다.jQuery(function($, undefined) {});
$(document).ready(function(){ });
$
첫 번째 주장으로 무료로 제공 된다는 것을 아는 것이 유용합니다 .
올바른 속기는 다음과 같습니다.
$(function() {
// this behaves as if within document.ready
});
게시 한 코드…
(function($){
//some code
})(jQuery);
… 익명 함수를 작성 jQuery
하고 arg로 전달하여 즉시 실행합니다 $
. 효과적으로 $
하는 것은 이미 함수의 내부 코드를 가져 와서 정상적인 것처럼 실행하는 것 입니다 jQuery
. :디
이것은 속기입니다 $(document).ready()
.
게시 한 코드는 내부 코드를 상자에 $
넣고 전역 네임 스페이스를 오염시키지 않고 jQuery를 사용할 수있게 합니다. 한 페이지에서 프로토 타입과 jQuery를 모두 사용하려는 경우에 사용할 수 있습니다.
이 특정 라인은 jQuery 플러그인의 일반적인 래퍼입니다.
"... 플러그인이 달러 기호를 사용하는 다른 라이브러리와 충돌하지 않도록하려면 jQuery를 달러 기호에 매핑하는 자체 실행 함수 (클로즈)에 jQuery를 전달하는 것이 가장 좋습니다. ' 실행 범위 내에서 다른 라이브러리로 덮어 쓰지 않아야합니다. "
(function( $ ){
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};
})( jQuery );
준비를위한 다중 프레임 워크 안전 속기는 다음과 같습니다.
jQuery(function($, undefined) {
// $ is guaranteed to be short for jQuery in this scope
// undefined is provided because it could have been overwritten elsewhere
});
이는 jQuery가 $
and 및 undefined
변수 를 사용하는 유일한 프레임 워크가 아니기 때문입니다.
(function($){ ... })(jQuery);
ready
대신 즉시이라고,
더 짧은 변종조차 사용하는 것입니다
$(()=>{
});
어디 $
jQuery를 뜻하고 ()=>{}
소위된다 '기능을 화살표' 상속 this
폐쇄에서. (그래서 this
당신은 아마 window
대신에 있을 것 입니다 document
.)
이건 어때?
(function($) {
$(function() {
// more code using $ as alias to jQuery
// will be fired when document is ready
});
})(jQuery);
var somevar;