[英]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.