首先在这里发布什么可能是一个非常基本的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