function里面的i一直为10
#js#
为什么function里面的i一直为10,不会随着for循环的变化而变化,我能理解异步操作,但是这个不是异步吧
为什么function里面的i一直为10,不会随着for循环的变化而变化,我能理解异步操作,但是这个不是异步吧
全部评论
建议学学闭包,这是一个很常见的案例,和变量对象和作用域链有关
闭包函数的变量是调用时才变赋值,普通函数是定义时赋值可以这么理解吗
let有块级作用域,产生闭包
闭包吧,result返回一个数组,数组的元素都是返回i的函数,当你去执行result[0]()的时候,就是直接返回i这个函数,那么就往上面的作用域去找这个i,由于闭包的存在,所以for循环中的i的内存不会被销毁,且经过循环之后,已经变成10,已经返回10
因为你return 的是i呀,后面执行的时候i的最后值已经是10了
你把var改成let就行了
相关推荐
2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板 点赞 评论 收藏
分享
点赞 评论 收藏
分享
