カテゴリー別アーカイブ: Programming Style

シャドーイング

シャドーイングとは, 例えば, グローバル変数と同じ名前を持つローカル変数を定義するといった, あまりよろしくないプログラミングのスタイル.

JavaScriptの例

var g = 0;
var f = function() {
    var g = 1;  //シャドーイング

    //f関数内のg変数のスコープはここまで
};

f();

console.log(g);  //= 0 グローバル変数のgなので 

次の例は, シャドーイングではない.

var g = 0;
var f = function() {
    g = 1;  //グローバル変数にアクセスしている
};

f();

console.log(g);  //= 1

ちなみに, JavaScriptに限らず, グローバル変数とローカル変数が衝突した場合には, 一般的にはローカル変数が優先される.

また, PHPのように, ローカルスコープからグローバルスコープへ (globalキーワードを利用しない限り) アクセスできない言語もある.