全局变量:函数外创建的变量
局部变量:函数内部创建的变量
闭包:有权去访问另一个函数作用域中的变量的函数
原理:
function test() {
var x = 10;
return function () {
return x;
}
}
alert(x);
var a = test();
alert(a());
实例:
function text(arg){
var y=function(){
return arg;
}
arg++;
return y;
}
var a=text(123);
alert(a())
原理2:
var y;
function text(){
var x=10;
y=function(){
return x;
}
}
text();
alert(y());
<!-- 迭代器实例 -->
<script>
function setup(x) {
var i=0;
return function(){
return x[i++];
};
}
var next=setup(["a","b","c"])
alert(next());
alert(next());
alert(next());
</script>
实例:
<script>
function text() {
var x = [];
var i;
for (i = 0; i < 3; i++) {
x[i] = (function (a) {
return function () {
return a;
}
})
(i);
}
return x;
}
var a = text();
alert(a[0]());
alert(a[1]());
alert(a[2]());
</script>
<!-- 迭代器实例 -->
<script>
function setup(x) {
var i=0;
return function(){
return x[i++];
};
}
var next=setup(["a","b","c"])
alert(next());
alert(next());
alert(next());
</script>