js闭包
来源:互联网 发布:广州淘宝大学学费多少 编辑:程序博客网 时间:2024/04/28 05:04
关于这方面的文章实在太多了,就简单拿个例子说说。
周二晚上刚刚有网易的在线笔试题,其中一道编程题是给一个<ul>列表,点击某行时,改行背景变红。本人代码如下:
<html><body> <ul id="list"><li>111111</li><li>222222</li><li>333333</li></ul></body><script type="text/javascript">var li_arr = document.getElementById("list").getElementsByTagName("li");//alert(li_arr.length);for(var i = 0; i< li_arr.length;i++){(function(_i){li_arr[_i].onclick = function(){for (var j = 0 ; j < li_arr.length;j++){li_arr[j].style.backgroundColor = "white";}this.style.backgroundColor = "red";}})(i);}</script></html>
这里就用到了闭包概念。看下面的代码
for(var i = 0; i< li_arr.length;i++)alert(i);
执行上面这段代码,alert的结果一直是3,因为alert获取的是i结束后的值,这时候应该使用闭包,是内部的函数能获取外部的值
for(var i = 0; i< li_arr.length;i++){(function(_i) {li_arr[_i].onclick = function(){alert(_i);}})(i);}
简单讲就是在内部再定义一个函数,将外部的变量当作参数传递进去才行。
0 0
- js闭包示例
- JS 闭包 计数器
- js闭包
- js 闭包
- js闭包
- js闭包
- js闭包
- js 闭包
- js 闭包
- js闭包
- js闭包
- (function (){})(); JS 闭包
- JS 闭包应用
- js闭包
- JS闭包
- JS 闭包随笔
- js闭包
- js 闭包
- 线程基础知识
- 关闭MediaRecorder录制状态改变时的声音
- Glide 入门到精通之十五 ——用 Glide Module 自定义 Glide
- easyui解析$.parser.parse()的学习,使用地方
- android 系统键盘的控制(显示和隐藏)
- js闭包
- UIStackView入门示例解析
- [Facebook 面试题]Meeting roomII 变形题
- a1006. Sign In and Sign Out (25)
- c++第二次上级报告
- jsp自定义标签及简单实例
- Spinner的简单使用
- iOS UIStepper 加减计数器
- 安装部署Mysql后外部不能访问的问题排查