6

当全局变量“x”被函数内的同名变量覆盖时,我想访问它。

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

  overRideX();
}

outer();

Jsbin:小提琴测试

我不想将内部的“x”变量重命名为别的东西。这可能吗 ?

编辑:在 abeisgreat 答案后编辑问题。

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

您的网页的全球范围是window. 因此,可以通过window对象访问全局范围内定义的每个变量。

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