【发布时间】:2023-03-19 15:50:01
【问题描述】:
当我在 Sublime Text 3 中运行应用程序时,在 Node.js 中调用该函数后,我的全局变量没有改变。当我在 bash 中运行它时,它会按预期改变。当我用“window.firstname = 'David'”替换“global.firstname = 'David'”并在chrome的控制台中运行它时,它会按预期改变。
var firstname = 'Simon';
var addSurname = function(){
var firstname = 'Gene';
var surname = 'Holmes';
var fullname = firstname + ' ' + surname;
global.firstname = 'David';
console.log(fullname);
};
addSurname();
console.log(firstname);
// Gene Holmes
// Simon
最终,我希望它输出
// Gene Holmes
// David
为什么“global.firstname='David'”语句没有在 Sublime Text 3 中使用 Node.js 构建更新我的全局变量?
【问题讨论】:
-
在 node.js 中,全局对象没有名称。它不是“全局的”,也不是“窗口”。从字面上看,没有可用的变量指向全局对象。直接访问全局对象的唯一方法是使用
this诡计,但这在严格模式下不起作用。幸运的是,您无需访问全局对象即可使用全局变量。
标签: javascript node.js sublimetext3