[英]Access JS Function in Global Scope
我已经在全局范围内的函数中定义了一个变量。 我可以通过window.foo
访问我的函数foo()
。 我想知道如何修改foo()
的data
内容? 我已经尝试过window.foo.data
但我收到undefined
的消息。
<script>
function foo() {
data = {
one : '1',
two : '2'
}
}
</script>
对于您的示例,您所需要做的就是调用 foo()
,它将设置全局变量data
。 之后,您可以简单地使用data
访问它:
function foo() { data = { one : '1', two : '2' } } // At this point here, data does not exist since foo() has not been run foo(); // Will run foo() and set the global variable data window.alert(data.one);
话虽如此,我建议您重新编写代码。 强烈建议不要使用随机变量来污染全局范围。 相反,您应该在要使用变量的公共范围内声明变量data
。 如果确实必须从任何地方都可以访问data
,则可能应该为其创建一个名称空间。
这可能是XY问题的一个示例。 如果您确切说明您要完成的任务,我们可能会提出更好的解决方案。
您将data
视为foo
的属性来对待。 但是,它实际上是一个全局变量。 在执行foo
, data
不存在。 当您执行foo()
data
是一个全球性的价值完全不连接到foo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.