免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

怎么在JavaScript中使用閉包-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)怎么在JavaScript中使用閉包,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

成都創(chuàng)新互聯(lián)公司2013年成立,先為卓資等服務(wù)建站,卓資等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為卓資企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

JavaScript的作用是什么

1、能夠嵌入動(dòng)態(tài)文本于HTML頁(yè)面。2、對(duì)瀏覽器事件做出響應(yīng)。3、讀寫(xiě)HTML元素。4、在數(shù)據(jù)被提交到服務(wù)器之前驗(yàn)證數(shù)據(jù)。5、檢測(cè)訪客的瀏覽器信息。6、控制cookies,包括創(chuàng)建和修改等。7、基于Node.js技術(shù)進(jìn)行服務(wù)器端編程。

理解閉包關(guān)鍵是理解JS的對(duì)象的本質(zhì)以及垃圾收集機(jī)制。函數(shù)也是對(duì)象,也有屬性,通常執(zhí)行一個(gè)函數(shù)時(shí),局部變量在函數(shù)執(zhí)行完后,內(nèi)存會(huì)被回收,這是JS的垃圾收集機(jī)制決定的,如果想保存局部變量所占用的內(nèi)存,就必須把保存在另一個(gè)不被回收的變量中,通常是全局變量。函數(shù)在創(chuàng)建時(shí),內(nèi)部屬性[[Scope]]保存了作用域鏈,作用域鏈中包含外部函數(shù)以及全局對(duì)象的變量,被稱為變量對(duì)象。所以把內(nèi)部函數(shù)返回時(shí),由于把函數(shù)保存了,所以內(nèi)部屬性[[Scope]]所保存的變量對(duì)象也就保存了而沒(méi)有被回收,因此局部變量也就被保存了。

最簡(jiǎn)單的閉包:

function f1() {
 var i = 0;
 return function () {
 var j = 0;
 i++;
 console.log(i,j);
 };
}
var fn = f1();
fn();//1 0
fn();//2 0

還有諸如給元素添加事件,事件函數(shù)保存著外部函數(shù)的變量,通過(guò)這個(gè)特性可以讓按鈕顯示被點(diǎn)擊次數(shù)。

當(dāng)然可以創(chuàng)建多層閉包,最內(nèi)部函數(shù)保存所有外部函數(shù)以及全局對(duì)象的變量,但并不是任何地方都用閉包,因?yàn)槠涫冀K都帶有[[Scope]]屬性,所有比較占內(nèi)存,所以在需要的時(shí)候才用。

閉包在模塊化編程,為函數(shù)或?qū)ο髣?chuàng)建私有變量的時(shí)候非常有用,可以避免全局污染以及變量命名沖突的問(wèn)題。

值得注意的是因?yàn)?/strong>[[Scope]]與函數(shù)有關(guān),如上述例子,在兩次執(zhí)行f1函數(shù)把返回的函數(shù)保存在不同的變量中,其外部函數(shù)的變量是互不影響的。如:

function f1() {
 var i = 0;
 return function () {
 var j = 0;
 i++;
 console.log(i,j);
 };
}
var fn = f1();
fn();//1 0
fn();//2 0
var fn1 = f1();
fn1();//1 0
fn(); //3 0
fn1();//2 0

關(guān)于怎么在JavaScript中使用閉包就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

標(biāo)題名稱:怎么在JavaScript中使用閉包-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://m.newbst.com/article40/hjdeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)外貿(mào)網(wǎng)站建設(shè)企業(yè)建站Google網(wǎng)站營(yíng)銷靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)