簡體   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