var a = b = 10;
(function(){
var a=b=20
})();
console.log(b); // 20
这不是闭包, 就是一个函数作用域和全局作用域.
还有, 你知道 var a=b=20
这个吗? 这并不是定义两个局部变量, 而是一个赋值给b
, 一个定义变量a
. 所以赋值更改的是全局变量的值, 定义局部变量为a
与全局的a
没有关系.
定义多个变量的语法是 var a, b
中间要有 逗号.
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你写的var a = b = 20;并不等于 var a =20;var b = 20 ; 这个b是全局变量 覆盖了闭包外的b