3 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個贊
該模式稱為自調(diào)用(self-invocation),一種自調(diào)用功能。它可以創(chuàng)建一個閉合,但這是模式的效果(也許是預(yù)期的效果),而不是模式本身。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊
為了澄清下面的評論,在大多數(shù)情況下,它創(chuàng)建一個閉包時,它將變量的范圍限制在該局部閉包中,這樣就不會創(chuàng)建全局變量,既可以使事情保持整潔,又可以避免對這些變量進(jìn)行任何不必要的更改。
這里有一些出色的答案,解釋了其中的原因:javascript閉包是如何工作的?
通常情況下,只有當(dāng)該作用域中的某些內(nèi)容暴露于外部作用域時,這才是創(chuàng)建閉合,但是我不能確定您的示例是否會看到更多代碼。如果沒有暴露任何東西,那么就不會創(chuàng)建任何閉包...否則,它只是一個立即執(zhí)行的匿名函數(shù)。
與之})();相反的});是,最后的格式實(shí)際上是在沒有參數(shù)的情況下立即調(diào)用該閉包以立即執(zhí)行。如果你曾在它的東西,例如})(something);那么這something將作為第一個參數(shù)在這里進(jìn)行傳遞:(function(somethingParam){。
添加回答
舉報