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就行了
相关推荐
查看18道真题和解析 点赞 评论 收藏
分享
10-23 18:07
辽宁工程技术大学 Web前端
后端劝退第91人:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装 点赞 评论 收藏
分享
09-02 13:06
门头沟学院 嵌入式软件开发 点赞 评论 收藏
分享
10-24 11:39
广东工业大学 Web前端
LZStarV:项目太简单了,你像用什么开发的技术栈没必要写一句话,按点写就好了;有特色的比如说WebSocket、视频流这种狠狠吹,那就好看多了 点赞 评论 收藏
分享