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

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

結果為什么是不是4呢?

結果為什么是不是4呢?

繁星coding 2019-02-05 19:06:56
function makeClosures(arr, fn) {    var result = new Array();     for(var i=0;i<arr.length;i++){        result[i] = function(){            return fn(arr[i]);        };    }    return result;}console.log(makeClosures([1, 2, 3], function (x) {    return x * x;}));
查看完整描述

2 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

    function makeClosures(arr, fn) {

      let result = new Array();

      // 如果用var,注意閉包問題

      for (let i = 0, len = arr.length; i < len; i++) {

        result[i] = function () {

          return fn(arr[i]);

        };

      }

      return result;

    }

    let testArr = [1, 2, 3]

    let fn = function (x) {

      return x * x;

    }

    // 條件一, 返回一個函數數組,長度和arr相同

    let result = makeClosures([1, 2, 3], fn);

    // 條件二, result[i]() 和 fn(arr[i]) 結果相同

    console.log('測試 i = 0', 'result[i]: ', result[0](), ' fn(arr[i]): ', fn(testArr[0])) // 1

    console.log('測試 i = 1', 'result[i]: ', result[1](), ' fn(arr[i]): ', fn(testArr[1])) // 4

    console.log('測試 i = 2', 'result[i]: ', result[2](), ' fn(arr[i]): ', fn(testArr[2])) // 9


查看完整回答
反對 回復 2019-03-13
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

你這題目是不是有問題
搜了一下 輸出是個函數 result[1]()的結果是4

輸入例子:
[1, 2, 3], function (x) { 
return x * x; 
}
輸出例子:

result[1]()

4


查看完整回答
反對 回復 2019-03-13
  • 2 回答
  • 0 關注
  • 649 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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