ここに最初に投稿すると、非常に基本的なJavaScriptに関する質問が出ます。私のWebページで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というプロパティを持つカードを "描画"しようとすると、そのプロパティに真の値を即座に割り当てて、同じカードを再び描画しないようにする2番目のボタンがあります。
私は変数をこれらの2つの機能の間で「共有」する方法を理解できないようです。上に示したようにグローバル変数宣言であると思ったことを試した上で、疑似グローバルな使用のためのモジュールを作成しようとしました。私が間違っていることを誰かに見せてもらえませんか?
私の変数宣言が実際にうまくいき、問題が2番目の関数にある場合は、私に知らせてください。
私の背景はVB.Net(VBScript + VBA)とSQLにあります。大学で非常に基本的なJavaScriptとHTMLクラスを取ったことがありますが、クラスが終わったら十分に追求していないので、私が学んだことの多くを保持できませんでした。
本当に助けていただきありがとうございます。
関数の構成を使用せず、 'drawCard(createDeck(deckForm))'のように引数を渡すのはなぜですか? – elclanrs
現在はグローバル変数なので、関数間で共有されます。あなたは何が問題なのか教えていただけますか? – Rajesh
これは、フォームのボタンから呼び出された最初の関数と何か関係がありますか? – TylerG