当名称与 Node.js 中的参数名称相同时,如何从函数访问全局变量?
var name = null;
function func(name) {
// How to set the global variable with the passed value
}
最佳答案
假设您正在谈论一个 node.js 模块,您的第一个 name
变量实际上不是全局的 - 它只是在模块的更高范围内(在模块级别定义)。因此,无法从在 Javascript 中具有同名参数的函数中访问它。
您必须更改两个冲突名称中的一个或另一个的名称才能访问这两个名称。
var name = null;
// change the name of the argument
function func(aname) {
name = aname;
}
func("Bob");
console.log(name); // "Bob"
如果它实际上是 node.js 中的全局变量,那么您可以使用 global
前缀访问它,如下所示:
global.name = "Bob";
function func(name) {
global.name = name;
}
function("Alice);
console.log(global.name); // "Alice"
仅供引用,通常我会远离名为name
的全局变量。如果这是浏览器代码,则已经有一个 window.name
会发生冲突。
这是一个 little primer on actual using global variables in node.js (一般不推荐)。 node.js 推荐共享导出的属性/变量/方法。
关于javascript - 当名称与 Node.js 中的参数名称相同时如何从函数访问全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35976229/