在这里,我有两个“类”制作卡片和卡片。Cards 本质上是一个具有特定方法的数组:
- 添加卡
- 移除卡
- 排序和洗牌
Card 是一个对象,用于保存花色值并输出连接两者的字符串。
我的问题是尝试运行此代码,即setup()
单击按钮。我发现当我刚刚创建一张卡片时,它仍然可以运行。我知道这一点,因为输出仍然会变为 hello world。
但是当我尝试将卡片添加到卡片类或卡片组时。脚本停止运行。我不知道这是为什么,我感觉它不喜欢我使用 Array 的方式。
那是问题一。
我的第二个问题是,当我
var temp= new card('c','2');
alert(temp.getvalue());
这也失败了。
关于我在这里做错了什么的任何见解都会有所帮助并受到赞赏。
function setup() {
var temp = new card('c', '2');
var textbox = document.getElementById("output");
textbox.value = "Hello, world!";
};
Array.prototype.shuffle = function () {
for (var i = this.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = this[i];
this[i] = this[j];
this[j] = tmp;
}
return this;
}
function card(s, v) {
this.suit = s;
this.value = v;
this.getvalue = function () {
return (suit.toString() + value.toString());
};
this.getSortOrder = function () {
var factor;
if (this.suit == 'c') {
factor = 0;
}
else if (this.suit == 'd') {
factor = 1;
}
else if (this.suit == 'h') {
factor = 2;
}
else if (this.suit == 's') {
factor = 3;
}
else {
factor = -2;
}
return (this.value + 13 * factor);
};
};
function Cards() {
this.list = new Array();
this.Addcard = function (c) {
list.push(c);
};
this.removeCard = function (c) {
list.splice(list.indexOf(c), 1);
};
this.lookat = function (i) {
return list[i];
};
this.sort = function () {
list.sort();
};
this.shuffle = function () {
list.shuffle();
};
this.prototype;
};