在 Pro JavaScript with Mootools 一书中,我找到了以下行
The scoping rules for function expressions are a bit different from function
declarations because they depend on variable scoping. Remember that in
JavaScript, the var keyword defines a variable to be scoped locally, and
omitting the keyword creates a global variable instead:
据我了解,我编写了以下代码并尝试检查
var a = function(){
b = function(){ c = function(){ alert("b"); }; };
};
alert(typeof a); // Returned me 'function'
alert(typeof b); // Returned me 'undefined'
alert(typeof c); // Returned me 'undefined'
我也在下面尝试过
var a = function(){
var b = function(){ c = function(){ alert("b"); }; };
};
alert(typeof a); // Returned me 'function'
alert(typeof b); // Returned me 'undefined'
alert(typeof c); // Returned me 'undefined'
你能否解释一下,让我更好地理解。根据我在第一个代码块中的理解 b 和 c 应该是全局变量。但在这种情况下不会发生这种情况。即使我试图a()
在警报之前调用......这是小提琴。请帮助我更好地理解范围。