一、初始化JQuery對象
DOM加載完成時運行代碼
1.$(document).ready(function(){ 全寫 // 在這里寫你的代碼... }); 2.jQuery(function(){ // 在這里寫你的代碼... }); 3.$(function(){ 簡寫方法,$等價於jQuery // 在這里寫你的代碼... }); 以上三個等價,這個函數初始化為一個jQuery對象:$(obj);
都是在DOM加載完成時運行代碼
二、(funtion(){})();立即執行函數;相當於先申明一個函數,聲明完后直接調用;順序加載JS時,加載到時執行
(function(){
//要執行的代碼
})(para)匿名方法
而調用函數 時,是在函數后面寫上括號和實參的,由於操作符的優先級,函數本身也需要用括號,即:(function(arg){...})(param)
就相當於定義了一個參數為arg的匿名函數,並且將param作為參數來調用這個匿名函數
(funtion(str){alert(str)})("output"));相當於:funtion OutPutFun(str){alert(str);};OutPutFun("output");
匿名方法:只調用,使用一次的方法
三、延伸:
(function($) {
//代碼
})(jQuery)什么意思?
初始化JQuery對象,其實際上是執行()(para)匿名方法,只不過是傳遞了jQuery對象。
**************************************************************************
簡單理解是
(function($){...})(jQuery)用來定義一些需要預先定義好的函數
注意:寫成 var countdown = function(){}的話在 jQuery對象函數中不能被調用 所以頂定義的函數必須是公共的,去掉 var;
$(function(){ })則是用來在DOM加載完成之后運行\執行那些預行定義好的函數.
**************************************************************************
總結:
jQuery(function(){ });用於存放操作DOM對象的代碼,執行其中代碼時DOM對象已存在。不可用於存放開發插件的代碼,因 為jQuery對象沒有得到傳遞,外部通過jQuery.method也調用不了其中的方法(函數)。
(function(){ })(jQuery);用於存放開發插件的代碼,執行其中代碼時DOM不一定存在,所以直接自動執行DOM操作的代碼 請小心使用。
js匿名對象介紹:
js的匿名函數很強大,
(function(paramA){...})(b);(匿名函數在js中因為也是對象,所以需要雙括號包裹起來)
這個結構就說明了,我使用了匿名函數,並且立刻執行這個匿名函數.
再分析(function(paramA){...})(b)這種格式,匿名函數部分參數paramA是個形參,用在匿名函數內部作為值的調用,而b這個參數就是個實參,是將b這個值代入到函數內部.