达拉~ 2022-05-16 21:04 采纳率: 64.7%
浏览 43
已结题

这两个函数为什么运行结果差异解释

首先他么的数组中放的都是没有执行的函数体,在下面执行的时候调用i这个变量,我可以理解第二个的输出,但是第一个的返回值i为什么可以固定i循环时的值,他本身有没有执行

这段代码
 var list = []
        var str = ''
        for (var i = 0; i < 10; i++) {
            (function (i) {
                console.log(i)
                list.push(function () {
                    return i
                })
            })(i)
        }
        console.log(list)
        for (var j = 0; j < 10; j++) {
            console.log(list[j]())
            str += list[j]()
        }
        console.log(str)//输出0123456789
和这段代码
var list = []
        var str = ''
        for (var i = 0; i < 10; i++) {

            list.push(function () {
                console.log(i)
                return i
            })
            console.log(list[i])
        }
        console.log(i)
        console.log(list)
        for (var j = 0; j < 10; j++) {
            // console.log(list[j])
            str += list[j]()
        }
        console.log(str)//输出10101010101010101010
 </script>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 5月20日
    • 创建了问题 5月16日

    悬赏问题

    • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
    • ¥50 如何将脑的图像投影到颅骨上
    • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
    • ¥15 netcore使用PuppeteerSharp截图
    • ¥20 这张图页脚具体代码该怎么写?
    • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
    • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
    • ¥15 数字信号处理考试111
    • ¥15 allegro17.2生成bom表是空白的
    • ¥15 请问一下怎么打通CAN通讯