无法访问窗口对象内的Javascript全局变量

无法访问窗口对象内的Javascript全局变量,javascript,global-variables,Javascript,Global Variables,我的理解(基于经验和经验) 如果我的Javascript执行此操作: global_var = {'key' : 'value'} 那么我应该能够做到这一点: console.log(window.global_var) 或 我希望这些东西能够将对象实际记录到我的控制台{'key':'value'}。事实上,后两种语句都打印undefined 我知道我能做到: window.global_var = {'key' : 'value'} 但那不是我想要的(只是开玩笑) 我已经从加载到页面的J

我的理解(基于经验和经验) 如果我的Javascript执行此操作:

global_var = {'key' : 'value'}
那么我应该能够做到这一点:

console.log(window.global_var)

我希望这些东西能够将对象实际记录到我的控制台
{'key':'value'}
。事实上,后两种语句都打印
undefined

我知道我能做到:

window.global_var = {'key' : 'value'}
但那不是我想要的(只是开玩笑)

我已经从加载到页面的Javascript文件中尝试过了。 我也尝试过从Chrome开发者控制台直接(重复上面的内容)和使用


我使用的是Chrome 47.0.2526.106 m版

global_var={'key':'value'}-->
窗口。全局变量;在Chrome47中对我有效。对不起,它在一个开发者选项卡中对我有效,但在另一个选项卡中无效。网页可能加载了一些设置,或者Chrome选项卡设置了一些设置来影响这种行为吗?这确实是一个有趣的例子,正如我所记得的,全局变量应该可以在没有窗口对象的情况下访问,也许你神奇的右击和保存做了一些你意想不到的事情?你为什么要用它?是的@Medet——可能是用户错误。我很欣赏全球范围的污染很糟糕。目前我们非常简单化。在本例中,脚本X.js具有脚本Y.js所需的内容。我们还不够先进,无法定义AMD等依赖项。我们甚至没有像
ourcompany={}
这样的顶级命名空间,所以我们至少可以填充它。我们只需确保在脚本Y.js之前加载脚本X.js。但更安全的是,我正在尝试这样做,奇怪的是,它告诉我
window.global\u var
是未定义的,即使我只能访问
global\u var
,所以它基本上是由口味决定的,我建议使用window.global\u对象,尽管你不想遵循任何约定,但只要想写什么就写什么(我是指AMD加载程序),我不认为这样能帮上忙
window.global_var = {'key' : 'value'}
=console.log({'key':'value'})
VM1587:1 Object {key: "value"}
undefined
{I right-click on the Object logged above and choose "save as Global Variable"}
temp1
Object {key: "value"}
window.temp1
undefined