在一个教程上看到一段代码,涉及到闭包的相关知识。
function User( properities ) { for ( var i in properities ) { (function ( which ) { var p = i; // 这个不是很明白 which['get' + i] = function() { return properties[p]; }; which['set' + i] = function() { properities[p] = val; } })(this) } }
函数通过 User 传入参数,利用内部函数解析传入参数,动态绑定到指定的函数上。
其中 var p = i;
,教程上解释是用 p 保存变量 i 的状态。该怎么理解?可以直接用变量 i 吗?
我理解是 for 循环内部就是立即执行函数,能够将当前的 i 绑定闭包函数上,可以不需要变量 p 来保存状态。
不知道自己理解的对不对?麻烦各位帮忙看看。
慕姐8265434
相关分类