大佬教程收集整理的这篇文章主要介绍了javascript – 请解释闭包,或将循环计数器绑定到函数范围,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
for(var i=0; i < someArray.length; i++){ someArraY[i].onclick = (function(i){/* Some code using i */})(i); }
有人可以解释这背后的逻辑,这个奇怪的语法,我从来没有见过这个:
(function(i))(i);
非常感谢您的时间和耐心.
@H_696_10@因此,创建新范围的唯一方法是调用函数,这就是什么
(function(i){/* Some code using i */}(i))
是在做.
请注意,您的示例错过了一个重要部分:立即函数必须返回另一个函数,它将是单击处理程序:
someArraY[i].onclick = (function(i){ return function() { /* Some code using i */ } }(i));
直接的功能并不特别.它以某种方式内联函数定义和函数调用.您可以通过正常的函数调用替换它:
function getClickHandler(i) { return function() { /* Some code using i */ } } for(var i=0; i < someArray.length; i++){ someArraY[i].onclick = getClickHandler(i); }@H_696_10@ @H_696_10@
以上是大佬教程为你收集整理的javascript – 请解释闭包,或将循环计数器绑定到函数范围全部内容,希望文章能够帮你解决javascript – 请解释闭包,或将循环计数器绑定到函数范围所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。