3 回答

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

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