繁体   English   中英

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

[英]How to access global variable from a function when the name is same as argument name in Node.js?

当名称与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会发生冲突。

这是在node.js中实际使用全局变量一些入门知识 (通常不建议这样做)。 在node.js中建议共享导出的属性/变量/方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM