静的スコープ
しかし、上記の疑似コード中にある f = function(z) { return y + z; }; のように、スコープ内にある手続きオブジェクト(クロージャ)によって、そのスコープ内における束縛を外部に持ち出すといったような(ことが可能な言語の)場合に、「静的スコープか否か」といったようなことが議論になる。
次の節で述べるCommon Lispでのdefvarや、Perlにおいてmyではなくlocalで宣言した変数といった動的スコープの場合は、その名前解決が、そのソースコードにおいて見えるように解決される(静的スコープ)のではなく、実行時の関数呼び出しの経路(コールスタック)から、ひとつひとつ呼出元をたどるようにして行われる(詳細は「動的スコープ」の記事を参照)。
それに対し静的スコープの場合は、手続きオブジェクトがクロージャによって実装されているなどのようにして、そのスコープにおける束縛が手続きオブジェクトに「ひっ付いて」おり、コールスタックによってではなく、手続きオブジェクトが作られた場所のスコープで名前が解決される(「コールスタック」の記事中の「ルーチンの入れ子における静的スコープサポート」という記述も参照)。