【发布时间】:2012-07-18 11:31:30
【问题描述】:
在带有 Mootools 的 Pro JavaScript 书中,我找到了以下行
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()...Here 是小提琴。请帮助我更好地了解范围。
【问题讨论】:
标签: javascript scope