1.(function($){...})(jQuery);閉包
(1)、原理:函數
這其實是匿名函數,以下:文檔
function(arg){...}io
這就定義了一個匿名函數,參數爲arg;而調用函數是,是在函數後面寫上括號和實參的,因爲操做符的優先級,函數自己也須要用括號,即(function(arg){...})(param)function
這就至關於定義了一個參數爲arg的匿名函數,而且 將param做爲參數來調用這個匿名函數;匿名函數
而(function($){...})(jQuery)則是同樣的,之因此只在形參 使用$,是爲了避免與其餘庫衝突,因此實參用jQuery變量
至關於function output(s){...};output(jQuery);或者var fn=function(s){...};fn(jQuery);原理
(2)、做用(很是有用):document
這種寫法的最大好處是造成閉包。在(function($){...})(jQuery)在內部定義的函數和變量只能在參數
此範圍內有效。
2.$(function(){...});jQuery(function($){...});$(document).ready(function(){...})這三個的做用是同樣的;
文檔載入完成後執行的函數。