亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery document.ready vs自調用匿名函數

jQuery document.ready vs自調用匿名函數

牛魔王的故事 2019-08-26 14:06:13
jQuery document.ready vs自調用匿名函數這兩者有什么區別。$(document).ready(function(){ ... });(function(){ ... })();這兩個函數同時被調用嗎?我知道,當瀏覽器呈現整個HTML頁面時會觸發document.ready,但第二個函數(自調用匿名函數)會怎樣。是否等待瀏覽器完成呈現頁面,或者只要遇到它就會調用它?
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

當DOM(Document對象模型)準備好執行JavaScript代碼時,將執行以下代碼。


$(document).ready(function(){

  // Write code here

}); 

以上代碼的簡寫是:


$(function(){

  // write code here

});

下面顯示的代碼是一個自我調用的匿名JavaScript函數,一旦瀏覽器解釋它就會執行:


(function(){

  //write code here

})();   // It is the parenthesis here that call the function.

下面顯示的jQuery自調用函數將全局jQuery對象作為參數傳遞給function($)。這使得$可以在自調用函數中本地使用,而無需遍歷定義的全局范圍。jQuery不是唯一可以使用的庫$,因此可以減少潛在的命名沖突。


(function($){

  //some code

})(jQuery);


查看完整回答
反對 回復 2019-08-26
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

  • $(document).ready(function(){ ... }); 或短 $(function(){...});

    當這個函數被調用時DOM is ready,你可以開始查詢元素。.ready()將在不同的瀏覽器上使用不同的方式來確保DOM真的準備就緒。

  • (function(){ ... })();

    這只不過是一個在瀏覽器解釋時盡快調用自身的函數ecma-/javascript。因此,你不太可能成功地在DOM elements這里采取行動。


查看完整回答
反對 回復 2019-08-26
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

  1. $(document).ready(function() { ... });簡單地將該函數綁定到ready文檔的事件,因此,正如您所說,當文檔加載時,事件會觸發。

  2. (function($) { ... })(jQuery);實際上是Javascript的構造,并且所有代碼片段都將jQuery對象function($)作為參數傳遞并運行函數,因此在該函數內部$始終引用該jQuery對象。這有助于解決命名空間沖突等問題。

因此,#1在文檔加載時執行,而#2立即運行,jQuery對象名為$shorthand。


查看完整回答
反對 回復 2019-08-26
  • 3 回答
  • 0 關注
  • 697 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號