6

関数内の同じ名前の変数によってオーバーライドされたときに、グローバル変数 'x' にアクセスしたいと考えています。

function outer() {
   var x = 10;
   function overRideX() {
      var x = "Updated";
      console.log(x);
   };

  overRideX();
}

outer();

Jsbin :テストするためのフィドル

内部の「x」変数の名前を別の名前に変更したくありません。これは可能ですか?

編集: abeisgreat answer の後に編集された質問。

4

2 に答える 2

2

window.x を使用して、グローバル スコープの変数を参照できます。

var x = 10;
function overRideX() {
  var x = "Updated";
  console.log(x);
  console.log(window.x);
};

overRideX();

このコードは、「更新済み」の後に 10 をログに記録します。

于 2013-04-05T05:44:35.767 に答える
1

Web ページのグローバル スコープは ですwindow。したがって、グローバル スコープで定義されたすべての変数は、オブジェクトを介してアクセスできwindowます。

var x = 10;
function overRideX() {
    var x = "Updated";
    console.log(x + ' ' + window.x);
}();
于 2013-04-05T05:46:38.010 に答える