下面这段代码:
var a = 0, b = 0, c = 0;
var fn = function(b){
return function(c){
console.log(a++,b++,c++);
}
}
var fn1 = fn(a);
fn1(b);
var fn2 = fn(c);
fn2(a);
fn2(b);
输出的结果为:
0 0 0
1 0 1
2 1 0
为什么是这个结果呢?真的是不理解。路过的帮忙解释一下,谢谢!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把程序稍微修改一下,看得会比较容易一点。这个示例主要是因为外部的变量与函数内部的变量命名相同,理解起来有点绕。
需要好好理解一下变量的作用域。