账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaScript中关于给函数闭包传参的问题!!!!
    29
    0

    此函数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]
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部