【发布时间】:2013-12-24 01:04:59
【问题描述】:
我有一个小练习项目,我正在开发一个二十一点游戏。我将 JS 原型用于 OOP 目的,到目前为止效果很好。我有一个游戏、卡片和手(玩家拥有的所有卡片)原型对象。 现在我的手原型有问题。 它返回我的卡片值“未定义”。我不知道出了什么问题,因为我的 Hand 构造函数返回了正确的值。
我不得不承认我对 JS 原型的理解可能还不是最好的,所以这可能是我正在努力解决的问题?!
这是我代码中的相关 sn-p:
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"!
}
};
你能帮帮我吗?非常感谢您!
【问题讨论】:
-
这是什么意思?
return cardSuit, cardNumber;。这将简单地返回cardNumber。
标签: javascript oop prototype prototypal-inheritance prototype-programming