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
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
不是,是因为函数内的局部作用域。
第一个例子
第二个例子:
另外补充一个点:
不推荐这样的定义法,因为这一句实际等价于:
b实际上没用var限定,成了隐式的全局变量了。这个就是作用域的问题吧,第一种情况a可以获取到,就是函数本身,第二种情况找不到a,就会去外层作用域寻找。