首先在這裏發佈什麼可能是一個非常基本的JavaScript問題。我有以下代碼:JScript - 函數之間的訪問變量
var decklist = [];
function CreateDeck() {
var deckform = document.getElementById("txtar_decklist").value.split('\n');
var stats = [];
for (var n = 0; n < deckform.length; n++){
if (deckform[n] != ""){
stats = deckform[n].split(',');
for (var x = 0; x < parseInt(stats[0],10); x++){
decklist.push({Name: stats[1],
Color: stats[2],
Type: stats[3],
Subtype: stats[4],
Level: stats[5],
Attack: stats[6],
Defense: stats[7],
Drawn: false});
}
}
}
};
function DrawCard() {
var randomcard = 0;
var carddrawn = false;
while (carddrawn == false){
randomcard = (Math.floor(Math.random() * decklist.length + 1)) - 1;
if (decklist[randomcard].Drawn == false){
alert(JSON.stringify(decklist[randomcard]));
decklist[randomcard].Drawn = true;
carddrawn = true;
}
}
};
在我的網頁,用戶將一個套牌並創建對象的數組來存儲每個卡片的統計/字段。我有第二個按鈕試圖「繪製」一張屬性爲.Drawn = false的卡片,然後立即爲該屬性分配一個真實值以防止用戶再次繪製同一張卡片。
我似乎無法弄清楚如何讓這兩個函數之間的變量「共享」。我已經嘗試了我認爲是如上所示的全局變量聲明,以及嘗試創建僞全局使用模塊。有人會介意讓我看看我做錯了什麼嗎?
哦,如果我的變量聲明其實對我正在做的事情很好,問題在於第二個函數,請告訴我。
我的背景是VB.Net(也是VBScript + VBA)和SQL。在大學裏學過非常基本的JavaScript和HTML課程,但是一旦課程結束後我就沒有足夠的時間來追求它們,以保留我學到的東西。
真的很感謝任何幫助!
爲什麼不使用函數組合,並傳遞參數,比如'drawCard(createDeck(deckForm))'? – elclanrs
目前它是一個全局變量,所以它是跨功能共享的。你能告訴我們什麼是問題嗎? – Rajesh
這是否有可能與從表單中的按鈕調用第一個函數有關? – TylerG