可能重複:
What does the leading semicolon in JavaScript libraries do?在JavaScript開始時開始分號的目的是什麼?
我已經注意到了很多jQuery插件開始
;(function(){ /* something in here */ })();
我只是想知道什麼開始分號是因爲,正如以及最後的空括號。
可能重複:
What does the leading semicolon in JavaScript libraries do?在JavaScript開始時開始分號的目的是什麼?
我已經注意到了很多jQuery插件開始
;(function(){ /* something in here */ })();
我只是想知道什麼開始分號是因爲,正如以及最後的空括號。
如果您在一些不好的腳本之後加上了這個腳本,分號就沒有用分號正確關閉它的最後一行。在這種情況下,可能會將兩個腳本組合在一起並導致代碼無效。例如,如果您將多個腳本合併爲單個響應。
()在最後執行該函數。這是創建一個閉包。私有變量和方法可以在這個函數的範圍內聲明,不能從腳本外部訪問。
此構造:
(function(){ /* something in here */ })()
用於創建在Javascript中一個新的範圍。
More info on function scope here.
關於分號,我從來沒有見過它。我認爲這是您連接多個腳本時的安全措施,因爲在某些情況下,分號在文件末尾是可選的。
這裏的例子:https://github.com/js-cookie/js-cookie/blob/latest/src/js.cookie.js –
這與「壞」腳本無關 - 它與分號自由風格的書寫有關。 – 2011-08-22 09:42:43
恕我直言,這是「壞」腳本。 –
@pst:我沒有得到。謹慎闡述? – naveen