摘要:一言不合,翠花,上酸菜隨便寫(xiě)個(gè)函數(shù)哈你猜會(huì)怎么輸出哦,這是為什么呢奧,這個(gè)嘛,就是說(shuō)的塊級(jí)作用域問(wèn)題下面開(kāi)始回歸正題其實(shí)你這樣寫(xiě),結(jié)果也是一樣留空太暴力了,也是來(lái)看看跟閉包結(jié)合大法其實(shí),搞了半天,有個(gè)更吊炸天的技能,都沒(méi)想告訴你,知道為什么
一言不合,
翠花,
上酸菜!
//隨便寫(xiě)個(gè)函數(shù)哈 var arr=[]; for(var i=0;i<3;i++){ arr[i]=function(){ return i; } } //你猜會(huì)怎么輸出 console.log(arr[0]());//3 console.log(arr[1]());//3 console.log(arr[3]());//3
哦,這是為什么呢?
奧,這個(gè)嘛,就是說(shuō)的塊級(jí)作用域問(wèn)題
下面開(kāi)始回歸正題:
其實(shí)你這樣寫(xiě),結(jié)果也是一樣:
var arr=[]; for(var i=0;i<3;i++){ //留空 } console.log(i)//太暴力了,也是3!
來(lái)看看IIFE跟閉包結(jié)合大法:
var arr=[]; for(var i=0;i<3;i++){ (function(i){ arr[i].function(i){ return i; } })(i); } console.log(arr[0]());//0 console.log(arr[1]());//1 console.log(arr[2]());//2
其實(shí),搞了半天,有個(gè)更吊炸天的技能,
都沒(méi)想告訴你,知道為什么那么多人喜歡ES6,
因?yàn)檎娴姆浅?66:
var arr=[]; for(let i=0;i<3;i++){ arr[i]=function(){ return i; } } //This is a Amazing world! console.log(arr[0]());//0 console.log(arr[1]());//1 console.log(arr[2]());//2
var 要哭了,真的,怎么可以這樣,
卑鄙!下流!無(wú)恥!打碼
...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103878.html
摘要:盡可能的使用局部變量,少用全局變量。正確的實(shí)現(xiàn)就是在函數(shù)體內(nèi)部使用將聲明成局部變量。在新特性中,引入了塊級(jí)作用域這個(gè)概念,因此還可以使用,來(lái)聲明局部變量。它們共享外部變量,并且閉包還可以更新的值。 變量作用域 作用域,對(duì)于JavaScript語(yǔ)言來(lái)說(shuō)無(wú)處不在,變量作用域,函數(shù)作用域(運(yùn)行時(shí)上下文和定義時(shí)上下文),作用域污染等等都跟作用域息息相關(guān),掌握J(rèn)avaScript作用于規(guī)則,可以...
摘要:匿名函數(shù)是不能單獨(dú)寫(xiě)的,所以就提不上立即執(zhí)行了。六立即執(zhí)行函數(shù)在閉包中的應(yīng)用立即執(zhí)行函數(shù)能配合閉包保存狀態(tài)。來(lái)看下上節(jié)內(nèi)容中閉包的例子現(xiàn)在,我們來(lái)利用立即執(zhí)行函數(shù)來(lái)簡(jiǎn)化它第一個(gè)匿名函數(shù)執(zhí)行完畢后,返回了第二個(gè)匿名函數(shù)。 前面的閉包中,提到與閉包相似的立即執(zhí)行函數(shù),感覺(jué)兩者還是比較容易弄混吧,嚴(yán)格來(lái)說(shuō)(因?yàn)橄?shū)和高程對(duì)閉包的定義不同),立即執(zhí)行函數(shù)并不屬于閉包,它不滿足閉包的三個(gè)條件。...
摘要:閉包在我理解是一種比較抽象的東西。所以我寫(xiě)了一篇博文來(lái)方便自己理解閉包。那么現(xiàn)在我們可以解釋一下閉包的第一個(gè)定義在計(jì)算機(jī)科學(xué)中,閉包是引用了自由變量的函數(shù)。循環(huán)中創(chuàng)建閉包在我們使用的關(guān)鍵字之前,閉包的一個(gè)常見(jiàn)問(wèn)題就出現(xiàn)在循環(huán)中創(chuàng)建閉包。 零. 前言 從我開(kāi)始接觸前端時(shí)就聽(tīng)說(shuō)過(guò)閉包,但是一直不理解閉包究竟是什么。上網(wǎng)看了各種博客,大家對(duì)閉包的說(shuō)法不一。閉包在我理解是一種比較抽象的東西。所...
摘要:詞法作用域的查找規(guī)則是閉包的一部分。因此的確同閉包息息相關(guān),即使本身并不會(huì)真的使用閉包。而上面的創(chuàng)建一個(gè)閉包,本質(zhì)上這是將一個(gè)塊轉(zhuǎn)換成一個(gè)可以被關(guān)閉的作用域。結(jié)合塊級(jí)作用域與閉包模塊這個(gè)模式在中被稱為模塊。 你不知道的JS(上卷)筆記 你不知道的 JavaScript JavaScript 既是一門(mén)充滿吸引力、簡(jiǎn)單易用的語(yǔ)言,又是一門(mén)具有許多復(fù)雜微妙技術(shù)的語(yǔ)言,即使是經(jīng)驗(yàn)豐富的 Jav...
閱讀 2696·2023-04-25 21:26
閱讀 1515·2021-11-25 09:43
閱讀 1950·2019-08-30 15:52
閱讀 933·2019-08-30 14:05
閱讀 2615·2019-08-29 16:10
閱讀 414·2019-08-29 13:48
閱讀 1861·2019-08-29 12:47
閱讀 1300·2019-08-23 18:04