我有一個小練習項目,我正在開發一個21點遊戲。我爲面向對象的目的使用JS原型,迄今爲止效果很好。我有一個遊戲,卡牌和手牌(玩家擁有的所有牌)原型對象。 現在我的手原型有問題。 它返回我的卡片值「未定義」。我不知道什麼是錯,因爲我的手構造函數返回正確的值。在JavaScript中與原型/繼承奮鬥
我不得不承認我對JS原型的理解可能不是最好的,所以這可能是我正在努力的問題?!
這是從我的代碼中的相關片段:
var suits = ["club", "diamond", "heart", "spade"];
var cardValue = ["ace", 2, 3, 4, 5, 6, 7, 8, 9, "jack", "queen", "king"];
function Game() {
}
Game.prototype = {
deal: function() {
var cardSuit = Math.floor(Math.random() * suits.length);
var cardNumber = Math.floor(Math.random() * cardValue.length);
return cardSuit, cardNumber;
},
createHand: function() {
var newHand = new Hand();
var userCards = newHand.getHand();
return newHand;
}
};
var card1, card2, handCards;
function Hand() {
var card1 = Game.prototype.deal(); //works! return two values
var card2 = Game.prototype.deal(); //works! return two values
var handCards = [card1, card2]; //works! creates array from card 1 and 2
}
Hand.prototype = {
getFirstCard: function() {
return card1; // IS "UNDEFINED"!
},
getSecondCard: function() {
return card2; // IS "UNDEFINED"!
},
getHand: function() {
return handCards; // IS "UNDEFINED"!
}
};
你能幫幫我嗎?非常感謝您提前!
這是什麼意思? '返回cardSuit,cardNumber;'。這將簡單地返回'cardNumber'。 – elclanrs