jQuery中$(function(){})

快樂生活每一天發表於2016-10-11

1、(function($) {…})(jQuery);

1)、原理:

這實際上是匿名函式,如下:

function(arg){…}
這就定義了一個匿名函式,引數為arg

而呼叫函式時,是在函式後面寫上括號和實參的,由於操作符的優先順序,函式本身也需要用括號,即:
(function(arg){…})(param)
這就相當於定義了一個引數為arg的匿名函式,並且將param作為引數來呼叫這個匿名函式

而(function($){…})(jQuery)則是一樣的,之所以只在形參使用$,是為了不與其他庫衝突,所以實參用jQuery
相當於funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);

2)、作用(非常有用):

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

形成是否函式函式、私有變數的概念。比如:

[javascript] view plain copy
  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

相關文章