任何人都可以解釋什麼jquery文檔正在引用以下語句:「使用$別名編寫故障安全jQuery代碼的參數,而不依賴於全局別名」當涉及到使用以下內容時:failsafe jQuery代碼
jQuery(function($) {
});
我一直在使用jquery一段時間,所以理解這段代碼在某種程度上做了什麼,但在關於編寫故障安全的jquery代碼中使用的短語困惑我,我不確定它是否重要。
任何人都可以解釋什麼jquery文檔正在引用以下語句:「使用$別名編寫故障安全jQuery代碼的參數,而不依賴於全局別名」當涉及到使用以下內容時:failsafe jQuery代碼
jQuery(function($) {
});
我一直在使用jquery一段時間,所以理解這段代碼在某種程度上做了什麼,但在關於編寫故障安全的jquery代碼中使用的短語困惑我,我不確定它是否重要。
$
變量名並不是jQuery獨有的 - 其他JavaScript庫也使用它。如果你在同一頁面上使用這兩個文件(可能不是故意的 - 另一個庫可能被第三方腳本拉入),那麼存在這樣的風險,即你認爲指向jQuery對象的變量實際上指向其他內容,這意味着代碼將會因爲你正在使用的API將不存在。
這段代碼的作用是使用全局jQuery
函數(它不與任何其他庫衝突),它傳遞一個接收主jQuery對象作爲參數的匿名函數。因爲這個參數的作用範圍是該函數而不是全局函數,所以函數外面沒有任何東西可以干擾它,並且你可以安全地進行編碼,只知道它只會是一個jQuery對象,除非你自己重寫它。
失敗保險只是指其他一些代碼或庫也可能嘗試使用$作爲var名稱的可能性。另一個庫使用名稱jQuery的可能性很小,因此通過將所有內容封裝在函數中並將jquery作爲參數傳遞($),您可以安全地使用$。
該概念與創建插件時相關,例如,當您無法確定$
是jQuery
對象的別名時。故障安全的方法是,如果你希望能夠在你的插件代碼中使用$
要麼完全直接使用jQuery,或將它包裝在一個封閉:
(function($){
// here code can always use $ as n alias for jQuery, regardless if the user
// has repointed $ to something else.
})(jQuery);