我已經使用在JavaScript
和AngularJS
IIFE和已使用的結構如下:爲什麼將一個IIFE分配給一個變量?
方法1:
//IIFE Immediately Invoked Function Expression
(function() {
}());
然而,我已經看到了經常以下其中一個變量是分配給IIFE
方法2:
//IIFE Immediately Invoked Function Expression assigned to doStuff variable
var doStuff = (function() {
}());
NOTE:這個問題是不是關於這種模式是什麼或什麼是一個IIFE是。這與爲什麼要在IIFE上使用返回變量及其與Angular實踐的關係有關。
在角度方法1工作正常,但在我看到的許多原始JS例子中,使用了方法2。我的假設是,任何在doStuff
中設置的東西都可以通過它調用並調用。但是,我不能100%確定這兩種方法之間的確切推理或區別,並且需要一些幫助來理解何時使用不同的方法?
@Bergi - 這ISN」重複 - 請仔細閱讀問題,並查看與該鏈接的區別。該鏈接不回答這個問題。 – atconway 2014-10-19 15:53:23
我不確定我是否理解這個問題。你似乎知道IIFE是做什麼的;現在爲什麼要使用IIFE的退貨?無論何時你想從表達式中返回一個返回值給doStuff賦值,而不是隻執行一個void IIFE。如果你正在尋找用例,你應該谷歌爲「模塊模式」,因爲這是一個帶有返回值的IIFE被調用。 – Bergi 2014-10-19 15:59:13
@Bergi - 我相信你剛剛發表的評論實際上是對我發佈的內容以及我所稱的'答案'的一個很好的解釋。如果你重新打開併發布該Blurb作爲答案,我會upvote。不要忘記,僅僅因爲某些東西對你來說顯而易見並不意味着它是OP(我)。另外,因爲它顯然不是結案的理由。我需要具體的例子和解釋爲什麼返回變量與不使用。在Angular中,他們一直沒有返回變量,但很多JS例子都使用返回值。我想知道並理解'爲什麼'。 – atconway 2014-10-19 16:06:22