首页 > 代码库 > 对闭包的理解
对闭包的理解
用一句通俗的话来说,闭包就是有权访问另一个函数作用域的变量的函数。
function cerateFunctions() { var result = new Array(); for (var i = 0; i < 10; i++) { result[i] = function() { return i; } } return result}
这个结果返回的函数i一直是10,那怎么才能符合我们的预期呢?
function cerateFunctions() { var result = new Array(); for (var i = 0; i < 10; i++) { result[i] = function(num) { return function() { return num; } }(i); } return result}
这样就能正确的符合我们的预期了。
顺便说一句,闭包这个名字真的很坑爹,我年轻的时候,一度以为
(function() { })();
是闭包,其实它是块级作用域。
对闭包的理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。