標籤:replace alert put strong color document ref ready 並且
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)在內部定義的函數和變數只能在此範圍內有效。
形成是否函數函數、私人變數的概念。比如:
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
2、$(function(){…}); jQuery(function($) {…}); $(document).ready(function(){…})
這三個的作用是一樣的
jQuery中$(function(){})與(function($){})(jQuery)、$(document).ready(function(){})等的區別詳細講解