[英]How to define Global Arrays?
代碼示例:
<script>
var data = new Array();
data[0] = 'hi';
data[1] = 'bye';
</script>
<script>
alert(data[0]);
</script>
這給出了以下錯誤: data is not defined
你如何做這樣的事情? 特別是如果第一個<script>
塊被 ajax 加載到頁面上,而第二個塊正在從它開始工作。 jQuery 解決方案是可以接受的。
New
不是關鍵字。
采用:
var data = new Array();
或者,更簡潔:
var data = [];
編輯后,您提到第一個腳本塊是異步加載的。 您的代碼將無法像編寫的那樣工作。 data
是一個全局變量,一旦它被加載到頁面上。 您需要使用回調模式才能正確執行代碼。
由於您尚未發布異步代碼,因此我不會提供callback
示例。 不過,一個快速的解決方案如下:
var interval = setInterval(function(){
if(data) {
/* ... use data ... */
clearInterval(interval);
}
}, 500);
要創建全局變量,只需從語句中省略“var”即可。 當您省略“var”時,您實際上是在 window 命名空間中創建變量。
所以, zz = 1
實際上是window.zz = 1
如果你真的想,你可以明確地說
window.data = new Array(); //remember that new should be lowercase.
但是你無論如何都可以寫得更快
data = ['hi','bye'];
alert(data);
如果您使用的是 jQuery,也許您應該嘗試使用.getScript()
而不是使用.html()
;
// in separate file
data[0] = 'hi';
data[1] = 'bye';
// in main file
var data = [];
$.getScript(url).done(function() {
alert(data[0]);
}).fail(function() {
// handle error
});
<script>
data = [];
data[0] = 'hi';
data[1] = 'bye';
</script>
<script>
alert(data[0]);
</script>
使用這個,刪除 var 使變量全局
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.