JavaScript創(chuàng)建閉包的兩種方式的優(yōu)劣與區(qū)別分析
通常JavaScript創(chuàng)建閉包比較常用的有兩種方式。
構(gòu)造函數(shù)方式:
new function() { var 變量... }
內(nèi)聯(lián)執(zhí)行方式:
(function() { var 變量... })();
在JavaScript內(nèi)部運(yùn)行機(jī)制下他們有什么區(qū)別?用哪種方式創(chuàng)建比較好?它與其它方式創(chuàng)建的閉包相比有什么優(yōu)勢?
我是這樣理解的:
區(qū)別:
第一個:子方法可以共享變量
第二個:內(nèi)部子方法共享變量
比較:
我認(rèn)為內(nèi)聯(lián)的比較好;
優(yōu)勢:
一般內(nèi)聯(lián)的創(chuàng)建是按需索要內(nèi)存,因為只是局部執(zhí)行的變量在內(nèi)存里,可以將相關(guān)的和具有依賴性的代碼組織起來,以便將意外交互的風(fēng)險降到最低,構(gòu)造那個所有的方法執(zhí)行變量都要保存在內(nèi)存里,這樣會影響網(wǎng)頁的性能,建議退出前刪除變量
當(dāng)然這只是我的個人理解,其實一般都用閉包需要特別主要在IE內(nèi)核瀏覽器下產(chǎn)生內(nèi)存泄漏,最好是變量使用完就干掉。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡
相關(guān)文章
js類定義函數(shù)時用prototype與不用的區(qū)別示例介紹
沒有使用prototype的方法相當(dāng)于類的靜態(tài)方法,相反,使用prototype的方法相當(dāng)于類的實例方法,不許new后才能使用2014-06-06js遍歷、動態(tài)的添加數(shù)據(jù)的小例子
js遍歷、動態(tài)的添加數(shù)據(jù)的小例子,需要的朋友可以參考一下2013-06-06javascript教程:關(guān)于if簡寫語句優(yōu)化的方法
這篇文章主要介紹了js中if簡寫語句優(yōu)化的方法,需要的朋友可以參考下2014-05-05???????基于el-table和el-pagination實現(xiàn)數(shù)據(jù)的分頁效果流程詳解
本文主要介紹了???????基于el-table和el-pagination實現(xiàn)數(shù)據(jù)的分頁效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-11-11