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

时间:2016-03-13 21:19:36

标签: javascript variables scope global

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

var name = null;

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

var name = 'Name outer';

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

func ('Name inner');

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

答案 2 :(得分:0)

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

function func(name) {
  window.name=name;
}

在浏览器中或

function func(name) {
  global.name=name;
}
在node.js中

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

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