2013-08-21 27 views
1

我已經知道在這樣的功能包裝你的Javascript的優勢:傳遞函數到jQuery選擇

(function() { 
    // code goes here 
}()) 

但我已經通過將包裝功能將看到一些腳本,這些腳本做到這一點jQuery對象:

$(function() { 
    // blah blah blah blah blah 
}); 

這樣做的好處是什麼,還是隻是個人品味的問題?第二種方法是否否定$(document).ready()

+2

這第一種是立即執行的函數,第二個是jQuery的語法在頁面加載時執行某些操作,是的,它代替了$(document).ready() – mplungjan

+4

其次與$(document).ready()相同。閱讀文檔http://api.jquery.com/ready/ – elclanrs

回答

0

第一個

(function() { 
    // code goes here 
}()) 

That is self executing function.

而第二個功能是jquery具體。

If you see the docs

的。就緒()方法只能被稱爲一個jQuery對象匹配當前文檔上,因此可以省略選擇器。

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

哪個是等效於調用::

的。就緒()方法通常與匿名函數使用

$(function() { 
    // Handler for .ready() called. 
    }); 
0

你的第一個例子就是標準的JavaScript執行功能的自我,第二個是jQuery的具體的,是更多信息的$(document).ready(function() {});

看到the jQuery documentation

一個快捷方式,也this question自我執行功能

0

(function(){}())是IIFE(立即調用的函數表達式)和只是一個立即執行的函數
$(function(){})是瀏覽器準備就緒時的jQuery回調函數

我經常要jQuery的添加到對他們MooTools的網站,從而避免$衝突我做財產以後這樣的:

;(function($, app, undefined){ 
    // code here 
}(jQuery, myApp = window.myApp || {}))