Pro JavaScript with Mootools book で、以下の行を見つけました
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()
私もアラートの前に呼び出そうとしました...ここにフィドルがあります。スコープをよりよく理解するために、これについて私を助けてください。