回答
正如Fermin所說,全局範圍內的變量應該可以在聲明後加載的所有腳本訪問。您也可以使用window
或(在全球範圍內)this
的屬性以獲得相同的效果。
// first.js
var colorCodes = {
back : "#fff",
front : "#888",
side : "#369"
};
...在另一個文件...
// second.js
alert (colorCodes.back); // alerts `#fff`
...在HTML文件...
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
在瀏覽器中,'window' *是全局作用域 - 因此window.colorCodes和(全局)對象colorCodes是同一個對象。 – Piskvor 2010-07-14 08:22:06
真的......我提到它的原因是您需要從非全局範圍設置全局變量的情況。 – 2010-07-14 08:28:37
如果您將顏色代碼存儲在全局變量中,則應該可以從任意一個javascript文件訪問它。
你可以請示例代碼? – 2016-06-18 09:23:52
@edwardtorvalds - 查看接受的答案例如 – Fermin 2016-06-20 07:04:43
這應該工作 - 定義firstfile一個全局變量並從secondfile訪問它:
<script src="/firstfile.js"></script>
<script src="/secondfile.js"></script>
firstfile.js:
個var colors = {
text:'#000000',
background:'#aaaaaa',
something_else:'blue'
};
secondfile.js:
do_something_with(colors.background);
請注意,您在其中加載腳本文件,該命令是用於一些瀏覽器顯著(IE6肯定的,也許其他人)
我碰到amplify.js來了。它使用起來非常簡單。要存儲的值,我們把它稱爲「myvalue的」,你這樣做:
amplify.store("myKey", "myValue")
並訪問它,你做
amplify.store("myKey")
我不喜歡什麼answer above說不過雖然,它並沒有奏效我
,因爲我是declaring
這些變量inside
JQuery的$(document).ready()
所以請確保你在
<script>
標籤內聲明你的變量而不是其他地方
我可能會這樣做有點不同。我不確定爲什麼我使用這種語法,很久以前從某本書中複製它。但是我的每個js文件都定義了一個變量。第一個文件,沒有任何理由,被稱爲R:
var R =
{
somevar: 0,
othervar: -1,
init: function() {
...
} // end init function
somefunction: function(somearg) {
...
} // end somefunction
...
}; // end variable R definition
$(window).load(function() {
R.init();
})
然後,如果我有一個很大的一塊,我想分離,我把它放在一個單獨的文件和不同的變量名稱代碼,但我仍然可以引用R變量和函數。我呼籲沒有很好的理由,在所有新的TD:
var TD =
{
xvar: 0,
yvar: -1,
init: function() {
...
} // end init function
sepfunction: function() {
...
R.somefunction(xvar);
...
} // end somefunction
...
}; // end variable TD definition
$(window).load(function() {
TD.init();
})
你可以看到,其中在TD「sepfunction」我叫R.somefunction。 我意識到這不會提供任何運行效率,因爲這兩個腳本需要加載,但它確實幫助我保持我的代碼組織。
- 1. 從另一個文件訪問變量
- 2. 從另一個類訪問實例變量 - 我可以使用類方法嗎?
- 3. 我可以通過指針從另一個文件訪問文件的靜態變量嗎?
- 4. 從另一個訪問組件變量
- 5. 從另一個組件訪問變量
- 6. Perl:從另一個文件訪問「我的」變量
- 7. YML文件可以訪問另一個YML文件嗎?
- 8. 從另一個SWF文件訪問SWF文件中的變量
- 9. 是否可以從另一個類訪問變量?
- 10. 我可以從另一個腳本獲取變量的值嗎?
- 11. 我可以從另一個調用一個js文件嗎?
- 12. 我可以從另一個加載一個.gitconfig文件嗎?
- 13. 從另一個對象訪問變量
- 14. 從另一個類訪問變量objc
- 15. 從另一個類訪問類變量
- 16. 從另一個類訪問變量
- 17. 你可以在另一個文件中使用#define變量嗎?
- 18. 從一個組件到另一個組件的訪問變量
- 19. iPhone SDK:我可以從一個視圖中抓取實例變量並在另一個視圖中訪問嗎?
- 20. 從另一個CoffeeScript文件訪問變量?
- 21. 從另一個php文件的類函數訪問變量
- 22. 無法從另一個文件訪問javascript變量
- 23. 導入.ccbi文件時從另一個類訪問變量
- 24. 從另一個文件訪問變量和方法
- 25. 從另一個文件在C++中訪問extern變量
- 26. 從另一個php文件訪問SESSION變量
- 27. 目標C從另一個文件訪問的全局變量
- 28. Screeps從另一個文件訪問'主'變量?
- 29. 如何從另一個php文件訪問變量
- 30. 如何從ios中的另一個nib文件訪問變量
你爲什麼不合並它們? – Roki 2010-07-14 08:12:13
@Roki:例如,您可以從其他網站加載數據,而處理它們的腳本位於您的網站上:<腳本src =「second.js」>' – Piskvor 2010-07-14 08:23:20
datasource網站沒有回調? 我的意思: 下載second.js 包含: ... 功能secondscriptFn(O){// 做一些事情/ w的數據; } ... 下載http://datasource.example.net/first.js?callback=secondscriptFn 然後首先包含: secondscriptFn({back:「#fff」,front:「#888」,side: 「#369」}); 由於您可以控制first.js作用域,所以它比全局作用域版本更具可控性和可靠性...... – Roki 2010-07-14 08:43:46