繁体   English   中英

在全局范围内访问JS函数

[英]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的属性来对待。 但是,它实际上是一个全局变量。 在执行foodata不存在。 您执行foo() data是一个全球性的价值完全不连接到foo

暂无
暂无

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

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