javascript闭包问题,闭包只能取的包含函数中任何变量的最后一个值

function createFunctions(){
var result = new Array();

for (var i=0; i < 10; i++){
result[i] =function(){
return i;

};

}

return result;
}
js高级编程中说这里返回的都是10,我不明白的是为什么是10,而不是9,i不是小于10么。

就给for()里面的循环变量i都都已参数的 形式传进去 就ok了 (function(){})(i)
温馨提示:内容为网友见解,仅供参考
无其他回答

javascript闭包问题,闭包只能取的包含函数中任何变量的最后一个值
就给for()里面的循环变量i都都已参数的 形式传进去 就ok了 (function(){})(i)

闭包环境中的局部变量怎么赋值为null
JavaScript中的作用域链的机制引出了一个副作用,即闭包只能取得包含函数中任何变量的最后一个值。闭包所保存的是整个变量对象,而不是某个特殊的值。function createFunctions(){ var result=new Array();for (var i=0;i<10;i++){ result[i]=function(){ return i;};} return result;} var ...

闭包的理解
闭包中的数据会常驻内存,在不使用的时候要删除,否则会导致内存溢出。闭包只能取得包含函数中任何变量的最后一个值。闭包保存的是整个变量对象,而不是某个特殊的变量。例子1:这个函数会返回一个函数数组。表面上看,似乎每个函数都应该返回自己的索引值,但实际上,每个函数返回的都是10。因为每个函数的...

JS中for循环闭包问题如何解决
解决方案一:加一层闭包,i 以函数参数形式传递给内层函数:结果就是点击相应的li会弹出相应的数字,比如点第三个li,会出现以下效果:解决方案二:找个属性将i值保存起来,然后弹出这个值点第三个li,会出现以下效果:

自执行函数报错(xx is not a function)问题
作用: 隔离作用域(1. 变量隔离; 2. 避免闭包和作用域链带来的副作用,闭包只能取得包含函数中的变量的最后一个值--高级程序设计7.2.1章;) 写法:报错 : xxx is not a function...原因 : 由于(自执行函数的)前一个表达式未写分号结束,js在执行时会认为自执行函数(最外层)的括号...

javascript的闭包是什么意思?有什么用?
\\x0d\\x0a“官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。\\x0d\\x0a相信很少有人能直接看懂这句话,因为他描述的太学术。我想用如何在Javascript中创建一个闭包来告诉你什么是闭包,因为跳过闭包的...

js闭包是什么?
1、作为一个函数变量的一个引用,当函数返回时,其处于激活状态,一个闭包就是当一个函数返回时,一个没有释放资源的栈区。2、js闭包允许使用内部函数,这些内部函数可以访问它们所在的外部函数中声明的参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包...

Web前端工程师应该知道的提高JavaScript技能的技巧!
闭包是一个重要的JavaScript模式,可以私有访问变量。在本例中,createGreeter返回一个匿名函数,这个函数可以访问参数greeting(在这里是“Hello”)。在后续的调用中,sayHello将有权访问这个greeting!functioncreateGreeter(greeting){returnfunction(name){console.log(greeting+','+name);}}constsayHello=createGreeter('Hello...

JS闭包的概念
闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

JavaScript 设计模式之开关闭包(Closure Toggle)
闭包的本质在于封装,它允许一个函数访问并操作其外部作用域中的变量,即使这些作用域已经闭合。在开关闭包模式中,我们利用闭包特性创建一个包含两个闭包变量 handler 和 state 的函式。state 用于存储二元状态,如菜单的打开或关闭。toggle 方法则在每次执行时,通过将 state 的值反转来实现状态切换。在 ...

相似回答