此函数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]
米脂
相关分类