亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于函數閉包、函數作為參數傳遞疑問

關于函數閉包、函數作為參數傳遞疑問

largeQ 2018-11-06 13:13:45
1.描述:我想得到一個函數數組 result ,首先func函數向數組result里添加匿名函數(每個匿名函數都保存了各自的num)但是我將return 后面的匿名函數我用參數傳進來,相當于只是做了替換而已,為什么結果卻不同呢。下面我將 return 后面匿名函數作為參數傳進去就獲取不到。
查看完整描述

1 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

因為第二段代碼中的fn是定義在全局環境中的。
你可以看看這里和下邊的代碼,希望對你有幫助

function func(fn){

  var result =[] ;

  for(var i=0;i<3;i++){

    result.push(

      function (num){

        return fn;     

      }(i)

    );

  }

 return result;

}


function fn(){

  return num;

}

var num = 1;

console.log(func(fn)[1]()); //1


查看完整回答
反對 回復 2018-12-26
  • 1 回答
  • 0 關注
  • 587 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號