自动执行功能是否在dom准备就绪?

Cha*_*lin 7 javascript jquery function

在我听说自我执行函数之前,我总是习惯这样做:

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

function doSomething()
{
   // blah
}
Run Code Online (Sandbox Code Playgroud)

自执行功能会产生相同的效果吗?它会在dom上运行吗?

(function doSomething($) {
   // blah
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

Jos*_*ber 10

不.自动执行函数在Javascript引擎找到它时运行.

但是,如果您在结束</body>标记之前将所有代码放在文档的末尾(强烈建议这样做),那么您不必等待DOM准备就绪,因为您已自动过去了.


如果你想要的只是$变量范围,并且你不想将代码移到页面底部,你可以使用:

jQuery(function($){
    // The "$" variable is now scoped in here
    // and will not be affected by any code
    // overriding it outside of this function
});
Run Code Online (Sandbox Code Playgroud)