var a = b = null;
(function a(c){
console.log(a) //这里是function
return a =c;
})(1)
console.log(a) //这里是null
但是如果换一种写法:
var a = b = null;
(function b(c){
console.log(a) //这里是null
return a =c;
})(1)
console.log(a) //这里是1
var a = b = null;
(function a(c){
console.log(a) //这里是function
return a =c;
})(1)
console.log(a) //这里是null
但是如果换一种写法:
var a = b = null;
(function b(c){
console.log(a) //这里是null
return a =c;
})(1)
console.log(a) //这里是1
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答935 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
不是,是因为函数内的局部作用域。
第一个例子
第二个例子:
另外补充一个点:
不推荐这样的定义法,因为这一句实际等价于:
b
实际上没用var
限定,成了隐式的全局变量了。