关于javascript:访问函数内重写的全局变量

Access overridden global variable inside a function

当全局变量"x"在函数内被同一个命名变量覆盖时,我想访问它。

1
2
3
4
5
6
7
8
9
10
11
function outer() {
   var x = 10;
   function overRideX() {
      var x ="Updated";
      console.log(x);
   };

  overRideX();
}

outer();

jsbin:小提琴测试

我不想将内部的"x"变量重命名为其他变量。这有可能吗?

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


可以使用window.x引用全局范围的变量。

1
2
3
4
5
6
7
8
var x = 10;
function overRideX() {
  var x ="Updated";
  console.log(x);
  console.log(window.x);
};

overRideX();

此代码记录"更新"然后记录10。


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

1
2
3
4
5
var x = 10;
function overRideX() {
    var x ="Updated";
    console.log(x + ' ' + window.x);
}();