gpt4 book ai didi

javascript push() 失败

转载 作者:行者123 更新时间:2023-11-30 08:10:42 28 4
gpt4 key购买 nike

我正在尝试将卡片添加到 Deck 对象中的数组,但由于某种原因 push() 失败。我早些时候有这个工作,但在做了一些改变之后,我实际上把它搞砸了。(“testX”写入用于调试目的)

<!DOCTYPE HTML>
<html>
<head>
<style>
#myCanvas {
border: 1px solid #9C9898;
}
body {
margin: 0px;
padding: 0px;
}
</style>
<script type="text/javascript">
<!--
//draws the game
window.onload = function() {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");

//draws the rectangles that will be the card
var cardHeight = 125,
cardWidth = 80;

context.beginPath();

//draws the top row of 5 cards
for(var x=0;x<5;x++){
context.rect(10+(x*(cardWidth+10)),10,cardWidth,cardHeight);
}

//draws the bottom row of 5 cards
for(x=0;x<5;x++){
context.rect(10+(x*(cardWidth+10)),150,cardWidth,cardHeight);
}

//draws the deck
context.rect(10+5*cardWidth+65,(150-10)/2,cardWidth,cardHeight);

context.fillStyle = 'white';
context.fill();
context.lineWidth = 2;
context.strokeStyle = 'black';
context.stroke();
};


function Deck(){
//creates the unshuffled deck (loadedDeck) once to make the shuffling process faster
var loadedDeck = new Array(),
realDeck;

this.loadTheDeck = function(){ //method

for(x=1;x<=13;x++){
this.loadedDeck.push(x+" Spades"); //<---issue line (all 4 are failing though this is the first)
this.loadedDeck.push(x+" Clubs");
this.loadedDeck.push(x+" Hearts");
this.loadedDeck.push(x+" Diamonds");
}
document.write(this.loadedDeck);
};
this.loadTheDeck(); //creates the unshuffled deck when the Deck is instantiated


//resets the deck and randomizes
this.shuffle = function(){ //method

//creates the real deck
this.realDeck = this.loadedDeck;

//write shuffle function
};
this.shuffle(); //shuffles the Deck when instantiated
}

document.write("test-1");
var myDeck = new Deck();
document.write("test0");
document.write(this.realDeck);
document.write("test1");
-->
</script>
</head>
<body>
<canvas id="myCanvas" height="300" width="600"></canvas>

</body>
</html>

这是代码演示:http://jsfiddle.net/NfmsR/2/

最佳答案

当你运行这一行时:

this.loadedDeck.push(x+" Spades");

您正在使用 this.loadedDeck 数组。您是否将其定义为 Deck 对象的一部分?不:

var loadedDeck = new Array(),
realDeck;

将声明更改为此,它应该可以工作:

this.loadedDeck = []; // I'd use [] instead of new Array().
this.realDeck = [];

正如@j08691 所指出的,您还需要将 realDeck 更改为 this.realDeck,因为您在这里的调用方式类似:

this.shuffle = function(){ //method 

//creates the real deck
this.realDeck = this.loadedDeck;

//write shuffle function
};

关于javascript push() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885192/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com