[英]Why add () at the end of an immediately-invoked function expression?
所以我決定“重新學習”JavaScript,因為我忘記了很多。 我偶然發現了“立即調用的函數表達式”。
我理解了最后除了()
之外的所有內容。
例子:
!(function(){
console.log("Works");
})() // <----
我注意到沒有它,它就無法運行。 但有了它,它奏效了。 為什么()
重要?
我發現的其他類似問題沒有完全相同的問題,我也在網上搜索過,仍然沒有。
執行任何函數的方式是將包含在()
的參數列表放在對函數求值的表達式之后。
對於普通的命名函數,表達式只是函數的名稱。 IIFE 不需要名稱,因為它只使用了一次,所以它只是一個匿名函數表達式。
但是您仍然以相同的方式執行它,即在表達式之后放置一個參數列表。 通常 IIFE 不需要任何實際參數,因此參數列表為空。
(function() {
console.log("Works!");
})();
本質上是一樣的
function tempName() {
console.log("Works!");
}
tempName();
除了它不創建名稱tempName
。
如果你在最后省略了()
,就像只寫
tempName;
這只是對函數的引用,它不會調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.