jQuery中$(function(){})與(function($){})(jQuery)

一、(function($) {…})(jQuery);javascript

1)、原理:java

這其實是匿名函數,以下:閉包

function(arg){…}
這就定義了一個匿名函數,參數爲arg函數

而調用函數時,是在函數後面寫上括號和實參的,因爲操做符的優先級,函數自己也須要用括號,即:
(function(arg){…})(param)
這就至關於定義了一個參數爲arg的匿名函數,而且將param做爲實參來調用這個匿名函數spa

而(function($){…})(jQuery)則是同樣的,之因此只在形參使用$,是爲了避免與其餘庫衝突,因此實參用jQuery
至關於funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);.net

2)、做用(很是有用):blog

這種寫法的最大好處是造成閉包。在(function($) {…})(jQuery)在內部定義的函數和變量只能在此範圍內有效。ip

造成是否函數函數、私有變量的概念。好比:文檔

[javascript] view plain copyget

  1. var i=3;  

  2. function init(){  

  3.     alert("外層init:"+i);  

  4. }  

  5. (function($) {  

  6.     var i=2;  

  7.     function init(){  

  8.         alert("內層init:"+i);  

  9.     }  

  10.   

  11.     init();  

  12. })(jQuery);  

  13. init();  


執行結果:

內層init:2

外層init:3

 

二、$(function(){…});   jQuery(function($) {…});  $(document).ready(function(){…})

這三個的做用是同樣的,本人比較須要用第一種、書寫簡單。

文檔載入完成後執行的函數。

相關文章
相關標籤/搜索