<script type="text/javascript">
var GetId = (function() {
var id = 0;
return function() {
return id++;
}
})();
var newId1 = GetId();
var newId2 = GetId();
</script>
一、自执行函数
格式(function(){})();
页面解析到代码就会执行
(function() {
var id = 0;
return function() {
return id++;
}
})();
二、函数表达式
function() {
return id++;
}
三、闭包实质
1. GetId 就是 function() {return id++;} 函数表达式本身;
因为自执行函数return了function() {return id++;} 将其赋值给GetId,并且声明了一个局部变量id;
2.我们调用GetId () 就是执行 function() { return id++; }
闭包防止了id作为一个全局变量与其他研发人员的全局命名重复,因为闭包内的id是一个局部变量,我们通过GetId () 函数调用来获取id的值即可;