さて、ここを読まれている読者の方は、静的スコープと動的スコープの違いについて知っている人も多いかと思いますが、知らない人のために、簡単な具体例で説明します。 function main() { var x = 200 function caller() { var x = 100 callee() } function callee() { println(x) //200なら静的スコープ、100なら動的スコープ } } main() JavaScript風の擬似言語ですが、雰囲気は伝わるのではないかと思います。ここで、callee()関数の中で100が出力されれば、その言語では、変数のスコープは動的であり、200が出力されれば静的ということになります。 ぶっちゃけて言うと、変数が参照されたとき、関数のコールスタックを呼び出し先からたどって一番最初に見つかった変数定義を参照するのが動的スコ