此函數dim意圖是建立一個特定長度的數組(d),從特定的數位(n)開始依次按1增加。問題1:為什么返回的數組第一位始終是一開始傳入的參數?不是應該++嗎問題2:我對閉包的概念不是很懂,麻煩解釋一下為什么在6, 7行的函數中加n參數會發生異常(我認為應該把參數導入進下面的參數才對)比如如果我在第六行的函數中傳入n的話他就不會按照我所指定的數位開始增加,而是從0開始附返回值:(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]函數本體:Array.dim = function(d, n){ var i,
a = [] //n = n + 1;
for (i = 0; i < d; i++){
a[i] = (function (){ //麻煩解釋一下這行的函數中為什么寫入n參數會發生異常
return function(){ //麻煩解釋一下這行的函數中為什么寫入n參數會發生異常
return n++
}()
})(i)
} return a
}var arr = Array.dim(10,2);console.log(arr) //返回(10) [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
JavaScript中關于給函數閉包傳參的問題?。。?!
江戶川亂折騰
2018-08-26 12:37:57