Javascript 如何访问全局变量而不是参数值?

Javascript 如何访问全局变量而不是参数值?,javascript,node.js,Javascript,Node.js,我想用“apfala”访问变量 或者我必须以不同的方式重命名它们吗?如果您的javascript在浏览器中运行,您可以使用窗口全局变量来访问在全局范围中定义的变量frucht: var frucht=“apfala”; 函数getFrucht(frucht){ 控制台日志(frucht); console.log(window.frucht)//我想这里是apfala一个,这会有用的 } getFrucht(“apfel”)如果它是全局并且您正在浏览器中运行: 您可以使用window.fruc

我想用“apfala”访问变量


或者我必须以不同的方式重命名它们吗?

如果您的javascript在浏览器中运行,您可以使用
窗口
全局变量来访问在全局范围中定义的变量
frucht

var frucht=“apfala”;
函数getFrucht(frucht){
控制台日志(frucht);
console.log(window.frucht)//我想这里是apfala一个,这会有用的
}

getFrucht(“apfel”)如果它是全局并且您正在浏览器中运行:

您可以使用
window.frucht
,因为全局变量是
window
对象的属性


不过,不重用相同的变量名将是一个更好的主意。它避免了对全局变量的依赖和重用名称的混淆。

一般来说,在JavaScript中,如果要将父作用域传递给子作用域,则需要将父作用域中的
this
分配给变量,并在子作用域中访问该变量:

var frucht="apfala";
var parent = this;
function getFrucht(frucht){
  console.log(frucht);
  console.log(parent.frucht);
}
getFrucht("apfel");
另外,如其他回答中所述,如果您在浏览器中工作,只需使用
窗口
对象来附加和访问全局变量(
window.frucht=“apfala”
,然后使用
window.frucht
访问该变量)

希望有帮助。

阴影是局部变量共享相同值的过程 名称作为其包含范围中的变量。例如:

var a = 3;
function b() {
    var a = 10;
}
在这种情况下,b()内部的变量a将隐藏变量a 在全球范围内。这可能会在读取代码时造成混乱 而且不可能访问全局变量

你的代码表明你需要重新思考你想做的事情。由于不清楚您试图做什么的真实性质,因此很难为您的问题提出替代解决方案(除了不要阴影或使用全局),如果您有一个而不仅仅是好奇心的话

请不要这样做,但这应该适用于所有环境

“严格使用”;
var getGlobal=Function('returnthis');
getGlobal().frucht='apfala';
函数getFrucht(frucht){
控制台日志(frucht);
console.log(getGlobal().frucht);//我想这里是apfala一个,这样就行了
}

getFrucht(“apfe”)
您可以使用
window.frutch
访问全局设置。但是使用相同的名称不是最佳实践您是否在严格模式下运行此代码?我知道这可能不是世界上最好的问题,但我非常确定,没有人在不解释原因的情况下从否决投票中学到任何东西……好吧,我想我会得到答案,我也可以用在NodeJs上。-。因为我不能使用那个里的窗户
var a = 3;
function b() {
    var a = 10;
}