博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无意间创建的一个闭包,以及解决的方法
阅读量:6338 次
发布时间:2019-06-22

本文共 289 字,大约阅读时间需要 1 分钟。

闭包的本质是作用域链,我们在工作中常常无意间就会创建一个闭包,比方:

执行之后,会发现每一个onclick时间执行时弹出的都是11!

这是由于,onclick 函数是在 全局作用域里面被定义的,被定义的时候。会生成一个对象。这个对象继承了当前运行环境的作用域链。也就是说。这个函数运行体里的 i 。引用的是全局作用域里的i。

由于 for 循环运行完以后,全局作用域下的 i 的值变为了 11,所以才会每一个onclick函数都弹出11。

为了解决问题,我们须要为每一个 onclick 函数的生成建立一个单独的作用域。然后 onclick 函数弹出这个作用域里面的 局部变量:

转载地址:http://aqxoa.baihongyu.com/

你可能感兴趣的文章
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>
elasticsearch suggest 的几种使用-completion 的基本 使用
查看>>
04-【MongoDB入门教程】mongo命令行
查看>>
字符串与整数之间的转换
查看>>
断点传输HTTP和URL协议
查看>>
redis 数据类型详解 以及 redis适用场景场合
查看>>
mysql服务器的主从配置
查看>>
巧用AJAX技术,通过updatePanel控件实现局部刷新
查看>>
20140420技术交流活动总结
查看>>
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>
ThinkPHP 3.2.x 集成极光推送指北
查看>>
js作用域链
查看>>
java中如何选择Collection Class--java线程(第3版)
查看>>
为运维人员插上腾飞更远的翅膀!
查看>>
Word 2003中编辑标记与格式标记大讨论
查看>>
从国内向海外转移域名经验谈
查看>>
浅谈apache与tomact的整合
查看>>
SQL Server vNext CTP1 on Linux
查看>>