js
var m = 1;
function a(){
m = 2;
return function(){
console.log(m);
}
}
m = 3
var x = a();
x();
m = 4;
x();
执行,肯定是打印出,2和4。也就是m的全局变量的修改,影响了闭包。
但是py里
m = 1
def a():
m = 2
def b():
print(m)
return h:
m = 3
x = a()
x()
m = 4
x()
执行,打印出,2和2。也就是m的修改没影响闭包。对于闭包来讲,m=2固定为环境变量了