![](/img/trans.png)
[英]What is the purpose of wrapping whole Javascript files in anonymous functions like “(function(){ … })()”?
[英]Purpose of wrapping with anonymous function
我正在構建chrome擴展程序,並將以下代碼包含在我的內容腳本中。 pep是一個使事物可拖動的庫。 有趣的是,我的代碼適用於案例2,但不適用於案例1。 為什么會這樣?
似乎第二種情況是用匿名函數包裝函數調用(盡管我不確定為什么在此之前需要jquery)
//1
$('#square').pep();
//2
$(function($) {
$('#square').pep();
});
第二種情況是jQuery的“文檔准備就緒”的簡寫。
等效於:
$(document).ready(function() {
$('#square').pep();
});
文檔: https : //api.jquery.com/ready/
在第二種情況下,您使用$(document).ready()
的簡寫形式。 這樣,javascript將在執行之前等待所有DOM元素加載。 該庫需要加載所有元素才能正常工作。
傳遞給jQuery構造 $(function() {})
是$(document).ready(function() {});
的簡寫$(document).ready(function() {});
函數參數不必一定是匿名的,實際上,總是像$(function myDomReady() {})
這樣的函數命名是一個好習慣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.