jquery中關於 (function($){...})(jQuery)與$(document).ready();的區別
阿新 • • 發佈:2019-02-14
這裡實際上是匿名函式
function(arg){...}
這就定義了一個匿名函式,引數為arg
而呼叫函式 時,是在函式後面寫上括號和實參的,由於操作符的優先順序,函式本身也需要用括號,即:
(function(arg){...})(param)
這 就相當於定義了一個引數為arg的匿名函式,並且將param作為引數來呼叫這個匿名函式
而(function($){...}) (jQuery)則是一樣的,之所以只在形參使用$,是為了不與其他庫衝突,所以實參用jQuery
**************************************************************************
其實就等於
var fn = function($){....};
fn(jQuery);
其實可以這麼理解,不過要注意的是fn是不存在的
那個函式直接定義,然後就運行了。就“壓縮”成下面的樣子了
(function($){...})(jQuery)
**************************************************************************
簡單理解是(function($){...})(jQuery)用來定義一些需要預先定義好的函式
$(function(){ })則是用來在DOM載入完成之後執行\執行那些預行定義好的函式.
**************************************************************************
開發jQuery外掛時總結的一些經驗分享一下。
一、先看
jQuery(function(){
});
全寫為
jQuery(document).ready(function(){
});
意義為在DOM載入完畢後執行了ready()方法。
二、再看
(function(){
})(jQuery);
其實際上是執行()(para)匿名方法,只不過是傳遞了jQuery物件。
三、總結
jQuery(function(){ });用於存放操作DOM物件的程式碼,執行其中程式碼時DOM物件已存在。不可用於存放開發外掛的程式碼,因 為jQuery物件沒有得到傳遞,外部通過jQuery.method也調用不了其中的方法(函式)。
(function(){ })(jQuery);用於存放開發外掛的程式碼,執行其中程式碼時DOM不一定存在,所以直接自動執行DOM操作的程式碼 請小心使用。
function(arg){...}
這就定義了一個匿名函式,引數為arg
而呼叫函式 時,是在函式後面寫上括號和實參的,由於操作符的優先順序,函式本身也需要用括號,即:
(function(arg){...})(param)
這 就相當於定義了一個引數為arg的匿名函式,並且將param作為引數來呼叫這個匿名函式
而(function($){...}) (jQuery)則是一樣的,之所以只在形參使用$,是為了不與其他庫衝突,所以實參用jQuery
**************************************************************************
其實就等於
var fn = function($){....};
fn(jQuery);
其實可以這麼理解,不過要注意的是fn是不存在的
那個函式直接定義,然後就運行了。就“壓縮”成下面的樣子了
(function($){...})(jQuery)
**************************************************************************
簡單理解是(function($){...})(jQuery)用來定義一些需要預先定義好的函式
$(function(){ })則是用來在DOM載入完成之後執行\執行那些預行定義好的函式.
**************************************************************************
開發jQuery外掛時總結的一些經驗分享一下。
一、先看
jQuery(function(){
});
全寫為
jQuery(document).ready(function(){
});
意義為在DOM載入完畢後執行了ready()方法。
二、再看
(function(){
})(jQuery);
其實際上是執行()(para)匿名方法,只不過是傳遞了jQuery物件。
三、總結
jQuery(function(){ });用於存放操作DOM物件的程式碼,執行其中程式碼時DOM物件已存在。不可用於存放開發外掛的程式碼,因 為jQuery物件沒有得到傳遞,外部通過jQuery.method也調用不了其中的方法(函式)。
(function(){ })(jQuery);用於存放開發外掛的程式碼,執行其中程式碼時DOM不一定存在,所以直接自動執行DOM操作的程式碼 請小心使用。