亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - js閉包作用域

瀏覽:72日期:2023-04-29 13:59:19

問題描述

為什么會輸出10 次10 push進去的不應該是 1 - 9嗎 這個坑求大神解答

function save_i(){ var a = []; for(var i = 0;i<10;i++){a[i] = function(){ return i;} } return a; }var c = save_i();for(var i = 0;i<10;i++){ console.log(c[i]()); //10次 10}

問題解答

回答1:

只需要在for循環執行時,創建一個閉包函數將i值保存起來,既可以依次輸出

function save_i(){ var a = []; for(var i = 0;i<10;i++){a[i] = function(i){ return function() {return i; };}(i); } return a;}var c = save_i();for(var i = 0;i<10;i++){ console.log(c[i]()); //已經變為依次輸出}回答2:

在執行點擊事件之前,for循環已經執行完,也就是最終獲取的是最后 i 的值5。 呆神:綁定 和 點擊 是兩個事件 點擊是用戶交互的時候發生 綁定在引擎編譯代碼的時候就發生了~ 宇神:這樣理解吧,你把點擊事件當做一個下車事件,而火車從1-4,到4時你才能下車執行事件,此時值為4.

之前過基礎看過的文章理解閉包,要求你寫過一代碼,而且接下來在自己的代碼中也能用到,除些之外,就只能死記硬背了。老派的國人喜歡讓小孩子很小的時候背東西,但是不會和他們講是什么意思,有時也講不清,寄希望于在未來的某個時刻自然而然就懂了以上如果你有一定基礎,推薦看我寫的日志,再不懂,留言問我http://user.qzone.qq.com/2084...

回答3:

function save_i(){ var a = []; for(var i = 0;i<10;i++){a[i] = function(i){ return i;}; } return a; }var c = save_i();for(var i = 0;i<10;i++){ console.log(c[i](i));}回答4:

a[i] = function(i){ return i;};

return的每個i都是引用了外部的同一個i 也就是10

回答5:

var fns=[];function test(){ for(var i=0;i<10;i++){(function(j){ fns.push(function(){ console.log(j);} ); })(i); }}test();for(var k=0;k<fns.length;k++){ fns[k]();}

var變量的作用域是函數作用域,不是塊級作用域

回答6:

作用域鏈在創建的時候就已經生成了, c[i] = function(i){ return i; };運行的時候當前作用域沒有i,而上層作用域save_i()的i已經變成10。你認為結果是0~9,是不是你把上層作用域當做全局了

回答7:

a[i]賦值的時候是一堆function、也就是并沒有執行、也沒有拿到i、她的作用域也沒取到i

當你在下面執行的時候、這一堆function都開始找自己作用域能取到的i、也就是循環執行完的10

回答8:

var關鍵字聲明變量作用域為函數作用域, 因此 for 循環中的 i 變量會發生變量提升。 樓主的將for循環中的哪一段改為自執行函數就ok了。eg:function save_i(){

var a = [], i = 0;for(;i<10;i++){ a[i] = function(i){return i; }(i);}return a;

}

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 亚洲美女黄色片 | 高清国产一级精品毛片基地 | 在线免费观看视频黄 | 成人在线视频免费观看 | 亚洲欧美色综合大色 | 国内精品自在自线2020 | 一级白嫩美女毛片免费 | 亚洲系列 | 亚洲国产观看 | 国产精品欧美一区二区三区 | 国产精品视频在 | 免费一级毛片在线播放傲雪网 | 国产伦久视频免费观看 视频 | 午夜a视频 | 欧美成人精品欧美一级乱黄 | 国产亚洲欧美久久精品 | 91黑丝国产线观看免费 | 免费高清特级毛片 | 亚洲国产精品一区二区三区久久 | 在线观看国产麻豆 | 丁香婷婷在线 | 国产精品亚洲片在线花蝴蝶 | 性色aⅴ闺蜜一区二区三区 性色a按摩videos | www.欧美在线观看 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片唾 | 在线精品国产成人综合第一页 | 欧美精品免费线视频观看视频 | 国产大片线上免费看 | 亚洲视频综合 | 五月六月伊人狠狠丁香网 | 久久国产首页 | a级粗大硬长爽猛视频免费 a级精品国产片在线观看 | 色婷婷激婷婷深爱五月老司机 | xvideos亚洲网站入口 | 久久网免费视频 | 亚洲高清国产拍精品影院 | 国产成人精品日本亚洲网站 | 亚洲精品第一 | 日本成熟老妇乱 | 亚洲色在线视频 | 亚洲国产成人精彩精品 |