已经理解了这段闭包代码的意义了,但是在语法上面不完全理解这样子定义function的方式。主要是我标红色和蓝色的那两对括号。求教了,谢谢!<html><head></head><body>
<ul><li>1</li><li>2</li><li>3</li><li>4</li></ul>
</body>
<script>
var liArr = document.getElementsByTagName("li");
var liArrLength = liArr.length;
for (var i = 0; i < liArrLength; i++) {
(function () {
var local_i = i;
liArr[i].onclick = function () {
alert(local_i);
}
})();
}
</script>
</html>
};
ff()
var ff = function (){
};
(ff)()
[code=javascript]
(function (){
})()
};
ff()
var ff = function (){
};
(ff)()
(function (){
})()
这种写法就是目前流行的框架和控件开发常见的手法,好处是立即执行函数内部形成一个闭包,在这里定义的变量名与其它地方的变量名天然隔离开,有效果防止命名冲突和隐藏内部变量和内部函数。