`

闭包实例

 
阅读更多

闭包是JS中重点难点,自己看了N多文章和实例,检测一下!

 

下面这个ul,如何点击每一列的时候alert其index?
<ul id=”test”>
<li>这是第一条</li><li>这是第二条</li><li>这是第三条< /li>
</ul>

 

 

按照常规的思路,我们会像下面这样子写;那么运行的结果是什么呢?0、1、2、3 它只是把for循环跑了一遍,关键点来了,我们如何获取每个li的index属性?oTestList是一个数组,但很遗憾的是,通过getElementsByTagName取得的数组是没有index属性的,所以没法直接获取点击时的Index,那么我们只有自己写个方法了!

 

看看我们自己写的方法吧!正是采用了闭包的相关原理,我这里采取了两种写法,但本质是一样的

//第一种写法,两者的本质都是一样的,这种写法更容易理解
 function getIndex(){
	 var oTestList = document.getElementById("test").getElementsByTagName("li"); 
     for (var i = 0; i < oTestList.length; i++) {
         oTestList[i].onclick = new popNum(i);
     }
 }
 
 function popNum(oNum){
     return function(){
          alert('您单击的是第'+oNum+'项');
    }
 }
 
window.onload = function(){
     getIndex();
 }
   
//第二种写法,这种写法更能体现闭包的实质
window.onload=function(){
var oTestList = document.getElementById("test").getElementsByTagName("li");  
for (var i = 0; i < oTestList.length; i++){
	function listFunc(i){
		this.clickFun = function(){
			alert("列表项" + i);
		}
	}
	var newFunc = new listFunc(i);//此处必须新建
	oTestList[i].onclick = newFunc.clickFun;
}
}
 

如果大家还有什么比较典型的例子,就贴上来一起讨论一下吧!

分享到:
评论

相关推荐

    Python闭包实例closure.py

    Python闭包实例closure.py 简单示例闭包的使用 简单示例闭包的使用

    javascript 闭包实例下载

    javascript 闭包实例下载

    【仅适合初学者】js闭包实例

    用实例展示闭包的用法,其中包含一些动画效果

    数据科学三元闭包验证

    三元闭包现象的数据验证,1.整个实验以矩阵为操作对象,邻接矩阵还是很有作用的,也便于理解 2.R语言中有network数据结构,有IGraph包,计算聚集系数与介数都有已封装得函数。

    js闭包实例汇总

    本文是通过实例来帮助大家深刻理解js闭包,是篇非常不错的文章,这里推荐给大家,有需要的小伙伴可以参考下

    PHP闭包实例解析

    本文实例分析了PHP程序设计中闭包的概念机用法,分享给大家供大家参考。具体分析如下: 通常来说,闭包也就是PHP的匿名函数, 但是和函数不同的是,闭包可以通过use使用函数声明时所在作用域的变量的值。 具体形式...

    Javascript闭包实例详解

    什么是闭包 闭包是什么?闭包是Closure,这是静态语言所不具有的一个新特性。但是闭包也不是什么复杂到不可理解的东西,简而言之,闭包就是: 闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。...

    javascript 闭包实例

    NULL 博文链接:https://czj4451.iteye.com/blog/1988315

    JavaScript闭包实例详解

    一、充电 1、一切(引用类型)都是对象,对象是属性的集合。 2、函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样。但是函数与对象之间,却不仅仅是一种包含...

    Python中的闭包实例详解

    一般来说闭包这个概念在很多语言中都有涉及,本文主要谈谈python中的闭包定义及相关用法。Python中使用闭包主要是在进行函数式开发时使用。详情分析如下: 一、定义 python中的闭包从表现形式上定义(解释)为:如果...

    浅析javascript闭包 实例分析

    官方解释 “闭包”是一个拥有许多变量和绑定了这些变量的环境表达式(通常是一个函数),因而这些变量也是环境表达式的一部分。 通俗解释 Javascript中所有的函数都是一个闭包。不过一般来说,嵌套的function产生的...

    js中的闭包实例展示

    准确来说,闭包是基于正常的垃圾回收处理机制下的。也就是说,一般情况一个函数(函数作用域)执行完毕,里面声明的变量会全部释放,被垃圾回收器回收。但闭包利用一个技巧,让作用域里面的变量,在函数执行完之后...

    javascript闭包的理解和实例

    下面是一个简单的使用全局变量的闭包实例: 代码如下: var sWord=”Hello,Welcome to web前端开发工程师的博客,请多多指教。” function disWord(){ alert&#40;sWord&#41;; } disWord(); 解析:脚本载入到内存的...

    python中的闭包用法实例详解

    主要介绍了python中的闭包用法,以实例形式详细分析了Python中闭包的概念及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics