用闭包的例子

<div>
<input id="one" type="button" value="按钮一"/>
<input id="two" type="button" value="按钮二"/>
<input id="three" type="button" value="按钮三"/>
<button onclick=location.reload()>Reset</button>
</div>

<script>
function click_times(){
for(var i=1;;i++){
return function(){
alert(i++)
}
}
}
var temp=[];

var node=document.getElementsByTagName(‘input‘);
for(var q=0;q<node.length;q++){
temp.push(click_times());
node[q].addEventListener(‘click‘,temp[q])
}

</script>

还没发过博文,不知道效果是什么样,这段代码不复杂,了解闭包的人看了都懂,目标效果是点击按钮弹出框数字会逐个增加,和一般的不同的是为了三个按钮互不影响,我把方法放在了要遍历的数组里面

时间: 2024-10-08 19:35:09

用闭包的例子的相关文章

javascript 闭包理解例子

function Jquery(){ this.name = 'ysr'; this.sex = 'man'; return { x: this, age : 26 } } var b = new Jquery(); //b => {x:Jquery, age:26} //b.x = Jquery; //b.x.name = 'ysr'; //b.x.sex = 'man' var b = Jquery();//b.x = window; 若果里面没return 的话: function Jqu

一个循环和闭包的例子

1 for (var i=1; i<=5; i++) { 2 setTimeout(function timer() { 3 console.log(i); 4 }, i*1000); 5 } 预期:分别输出数字 1-5,每秒一次,每次一个. 实际上,会每秒一次输出 5次6,. 知识点: JS引擎是单线程的,定时器的工作方式:按指定时间间隔,将定时器的代码添加到JS引擎的消息队列:而非到了指定的时间立即执行回调函数. 在上例中, 作用域 尽管循环中的五个函数在各个迭代中分别定义,但都被封闭在一个

php闭包使用例子

一.依据闭包实现一个容器 class Di { private $factory; public function set($id, $value) { $this->factory[$id] = $value; } public function get($id) { $val = $this->factory[$id]; return $val();//如果不加括号,仅仅返回的是闭包类,并不是User实例 } } class User { private $username; public

js闭包原理与例子[转]

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.闭包原理: 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量. function f

聊一下JS中的作用域scope和闭包closure

scope和closure是javascript中两个非常关键的概念,前者JS用多了还比较好理解,closure就不一样了.我就被这个概念困扰了很久,无论看别人如何解释,就是不通.不过理越辩越明,代码写的多了,小程序测试的多了,再回过头看看别人写的帖子,也就渐渐明白了闭包的含义了.咱不是啥大牛,所以不搞的那么专业了,唯一的想法就是试图让你明白什么是作用域,什么是闭包.如果看了这个帖子你还不明白,那么多写个把月代码回过头再看,相信你一定会有收获:如果看这个帖子让你收获到了一些东西,告诉我,还是非常

python闭包

声明 :初学python,此文主要作为笔记,知识面浅,若理解有误请多担待,指出错误更是感激不尽! 闭包 :当函数存在嵌套,并且子函数引用了父函数中的变量,可以访问这些变量的作用域就形成闭包.如果子函数没有访问父函数中的变量,就不存在闭包,闭包每次运行是能够记住引用的外部作用域的变量的值.形象点说就是有一个大盒子,里面有个小盒子,小盒子里面用到的一些东西是来自外部的大盒子的,那么这些来自大盒子的东西,就是闭包. 接下来全部使用例子来解释闭包! 例子 一 #这里定义的是一个求和函数 def lazy

python开发函数进阶:命名空间,作用域,函数的本质,闭包,内置方法(globales)

一,命名空间 #局部命名空间#全局命名空间#内置命名空间 #三者的顺序#加载顺序 硬盘上--内存里#内置-->全局(从上到下顺序加载进来的)-->局部(调用的时候加载) 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #全局命名空间 5 a = 5 6 b = 8 7 #局部命名空间(函数) 8 def my_max(): 9 c = a if a > b else b 10 return c 11 m = my_max() 12 pr

Javascript 闭包浅析(一)

闭包 对于Javascript程序员来说,闭包(closure)是一个难懂又必须征服的概念.闭包的形成与变量的生存周期密切相关. 变量的作用域变量的作用域,指变量的有效范围.我们最常谈到的是在函数中声明的变量作用域.当在函数中声明一个变量的时候,如果该变量前面没有带上关键在var,这个变量就会成为全局变量,这当然是一种容易造成命名冲突的做法.(ES5严格模式下报错)另一种情况是用var关键字在函数中声明变量,这时候的变量既是局部变量,只有在该函数内部才能访问到这个变量,在函数外面是访问不到的.在

折腾自己的js闭包(二)

前面我大致探讨了js里的闭包的相关概念,那么,到底在什么时候用它最好呢?存在即真理,只不过以前没发现它而已,先来看看下面的这几个用途吧 一.我首先想到的就是从函数外面访问它的内部变量,从而达到自己的一些目的,还避免了设定为全局变量的全局变量污染,例如如下这个封装: var person = function(){ //变量作用域为函数内部,外部无法访问 var name = "default name"; return { getName : function(){ return na