[英]Why is this javascript function inside parenthesis?
我一直在尋找問題的解決方案,但發現這個問題https://stackoverflow.com/a/6962808/2724978
編寫的函數為:
(function loop() {
var rand = Math.round(Math.random() * (3000 - 500)) + 500;
setTimeout(function() {
doSomething();
loop();
}, rand);
}());
我的問題是,為什么現場括號內也要有()? 這讓我有些困惑,以前從未見過。
這是立即調用函數表達式的示例。
上面的鏈接將說明您需要了解的所有內容,但實際上發生了兩件事。
()
)可確保該表達式的范圍是密封的。 該代碼段創建了一個匿名函數,並立即對其進行調用。
不做父母的問題,
// This is a syntax error
function () {
something;
}();
那是語法錯誤嗎? 因為該語句以'function'開頭,所以解析器希望跟隨函數名稱。 將所有內容包裝在括號中可以使在其中定義匿名函數在語法上合法。
// This is valid syntax
(function () {
something;
}());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.