开发者

jquery anonymous function declaration meanings

开发者 https://www.devze.com 2023-01-01 04:55 出处:网络
Are the following assumptions accurate? 1) execute immediately (function(){ })(); 2) execute on document ready

Are the following assumptions accurate?

1) execute immediately

(function(){
})();

2) execute on document ready

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

3) shorthand for on document ready

$(f开发者_运维知识库unction(){
});

4) alternative shorthand for on document ready for avoiding cross script conflicts

(function($) {
})(jQuery);


Yes your definitions are correct, for the first 3 :)

Though, unless you need a closure, a statement will execute immediately, no reason to wrap it like #1 has (there are certainly plenty of valid times you need a closure, just noting if you don't...it's superfluous).

Number 4 however is not correct, (function($) { })(jQuery); is not tied to any event, it's just a closure so that $ === jQuery inside of it, so you can use the $ shortcut:

(function($) { 
  //You may use $ here instead of jQuery and it'll work...even if $ means
  //something else outside of this closure, another library shortcut for example
})(jQuery);


Here's the #4 you were looking for:

jQuery(function ($) {
});

It will run on document.ready, within a namespace, and with jQuery defined as $.

0

精彩评论

暂无评论...
验证码 换一张
取 消