关于闭包问题
代码段1
代码段2
同样都是闭包,为什么第1段代码输出的值不同,而第二段相同呢?
function f(x)
{
var g = function () { return x; }
return g;
}
var g1 = f(1);
var g2 = f(2);
alert(g1()); //输出 1
alert(g2()); //输出 2
代码段2
function a()
{
var array = new Array();
for (var i = 0; i < 10; i++)
{
array.push(function() {return i});
}
return array;
}
var array = a();
for (var i = 0; i < array.length; i++)
{
window.alert(array[i]()); //全是10
}
同样都是闭包,为什么第1段代码输出的值不同,而第二段相同呢?
...全文
相关推荐
javascript 避免闭包引发的问题
闭包的功能强大,但如果没有正确理解闭包的概念,其结果往往出乎人的意料。例如,下面是一个较常见的问题
浅谈js 闭包引起的内存泄露问题
主要介绍了浅谈js 闭包引起的内存泄露问题的相关资料,需要的朋友可以参考下
javascript 常见的闭包问题的解决办法
javascript 常见的闭包问题的解决办法,需要的朋友可以参考下。
解决js函数闭包内存泄露问题的办法
本文通过举例,由浅入深的讲解了解决js函数闭包内存泄露问题的办法,分享给大家供大家参考,具体内容如下 原始代码: function Cars(){ this.name = "Benz"; this.color = ["white","black"]; } Cars.prototype.sayColor = function(){ var outer = this; return function(){ return outer.color }; }; var instance = new Cars(); console.log(instance.sayColor(
分析js闭包引起的事件注册问题
主要为大家分析了js闭包引起的事件注册问题,感兴趣的小伙伴们可以参考一下


