3 回答

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先:(function($){})(jQuery)和$(function(){})是沒有任何關(guān)系的,前者只是一個(gè)IIFE,后者只是一個(gè)普通的高階函數(shù)jQuery function,然后傳入一個(gè)參數(shù)function。
其次:(function($){...})(jQuery) 是等于(function(arg){...})(param)這都是一個(gè)IIFE。
最后: IIFE --> 快速執(zhí)行表達(dá)式,同時(shí)也是一個(gè)閉包。

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超2個(gè)贊
(function($){})(jQuery)可以分作兩部來解讀:
????1,定義函數(shù)function fun(param){}
????2,立即調(diào)用fun(jQuery),傳入的參數(shù)是jQuery對(duì)象
????*注:只是定義的并非名為fun的函數(shù),而是匿名函數(shù)
???????? 改寫法多用于無論$是否已被其他庫占用,匿名函數(shù)內(nèi)都可用$來引用jQuery對(duì)象
$(function(){})表示傳入jQuery構(gòu)造函數(shù)的是一個(gè)function
當(dāng)構(gòu)造函數(shù)為function時(shí)jQuery對(duì)象會(huì)將該函數(shù)綁定到DOMContentLoaded(不存在則綁定到window.onload)事件句柄上
表示文檔或整個(gè)window內(nèi)容資源加載完畢再執(zhí)行傳入的function
這種寫法是為了防止在DOM元素還未加載之前js代碼就過早操作該DOM元素而引發(fā)錯(cuò)誤的情況
兩者并沒有太多聯(lián)系。
- 3 回答
- 1 關(guān)注
- 2007 瀏覽
添加回答
舉報(bào)