当名称与JavaScript中的参数名称相同时,如何从函数访问全局变量?

How to access global variable from a function when the name is same as argument name in JavaScript?

本问题已经有最佳答案,请猛点这里访问。

当名称与JavaScript中的参数名称相同时,如何从函数访问全局变量?

1
2
3
4
5
var name = null;

function func(name) {
  // How to set the global variable with the passed value
}


1
2
3
4
5
6
7
8
var name = 'Name outer';

function func(name) {
  console.log(name);
  console.log(window.name);
}

func ('Name inner');

但是,这将是不好的做法,你应该避免这种情况。


将参数的名称更改为其他名称。 别无他法,因为它总能看到最里面的name


如果您真的在谈论全局变量,可以这样做:

1
2
3
function func(name) {
  window.name=name;
}

在浏览器或

1
2
3
function func(name) {
  global.name=name;
}

在node.js中但是如果你在一个函数中声明了name,则无法做到这一点。

但是,如果可能的话,你应该避免使用gobal变量,因为它们由包括库在内的所有使用的代码共享,如果名称归结,你不知道这是否有任何副作用。