1
由於缺乏更好的描述,在理解我將稱爲變量範圍問題時存在一個問題。在JavaScript中傳遞數據
假設我有一個有兩個功能的頁面,one()
和two()
。第一個函數有一個局部範圍的變量x
及其中的一個對象。此函數在DOM中構建一個元素,該元素包含一個onClick
,它調用第二個函數,並且需要將x
作爲參數傳遞給第二個函數。即第二個函數需要訪問作用於第一個函數的數據。
我曾嘗試:
<something onClick="two(x);">
但這似乎並沒有工作。我知道有一種方法可以使x
全球化,但我發現在其他語言中,全局範圍的變量不鼓勵危險。
告訴我coooooooode! – jbabey
如果您發佈了一些代碼,我們可以提出建議。在定義函數之前,可以將var x ='something'直接放入
使用函數中的全局變量不一定是壞事,但它被認爲是不好的做法,把變量窗口範圍,這是假設如果你不把你的變量包裝在函數或對象中。
考慮這個例子:
來源
2011-09-29 20:19:42 David
您應該variable scope閱讀起來。
功能結束
one()
有權訪問x。但由於它存在於one()
而不是其他功能以外的其他功能將無法訪問它。因此,您將two(x);
放入您的onClick,它將嘗試將x
解析爲全局範圍。並且沒有全球化x
您可以通過全球化
x
輕鬆解決此問題。只需在您的功能旁邊放置var x
即可。來源
2011-09-29 20:19:54 Marshall
使X Global公司宣稱它的方法之外
x將打印1
來源
2011-09-29 20:20:24
你錯過了一些花括號('{}'和分號(';')。另外,javascript中沒有'print'函數(除了涉及物理打印機)。最後,OP知道''有一個方法使x全球',但不想這樣做,有充分的理由。 – someone
這比任何東西都更模糊,他想知道如何在方法之間交換數據,這可行,我可能不會得分,但知識在那裏 –