静的スコープと動的範囲

それは要するに、その範囲を規定された実行前に、どのローカルスコープ(変数)は、それが適用されることができるが決定実行する前に静的スコープは、コードのセクションを指します。
ダイナミックスコープ-関数が決定する前に呼び出される関数のスコープ

JavaScriptは静的なスコープですレキシカルスコープを使用しています。

@静的スコープ:
VAR A = 10;

関数fn(){
VARのB = 1。
console.log(A + B)。
}

FN(); // 11

それが決定されたときには、変数が直接操作変数を持つ関数fnであれば、変数は、行動することができFN関数を作成する場合は
1を見つけることがない場合は、静的までの範囲です、

@動的範囲:
関数foo(){
にconsole.log(A);
}

関数bar(){
VARのA = 3。
FOO();
}

2があります。
バー(); // 2;

JavaScriptはレキシカルスコープ(つまり、静的スコープ)があるので、バーの呼び出し、FOOと呼ばれているバー、関数fooあなたは、変数見つける必要がグローバルスコープで解析すると、fooが。
、我々は、グローバルスコープの出力を見つけることができます結果として、むしろバースコープよりも2。あなたがfooバーを呼び出すときのjsダイナミックスコープを使用して、それが最初のバーでチェックする場合は、出力が3です。

おすすめ

転載: www.cnblogs.com/xiaoniaohhl/p/11117715.html