这是我的代码:
var Evalcard = function(number) {
if (number == 1) {
this.name = "Ace";
this.value = 11;
}
else if (number == 11) {
this.name = "Jack";
this.value = 10;
}
else if (number == 12) {
this.name = "Queen";
this.value = 10;
}
else if (number == 13) {
this.name = "King";
this.value = 10;
}
return [this.name,this.value];
}
var Buildmatrix = function(mat,suit) {
row = [];
var cardeval = new Evalcard(r);
for (r = 1;r <= 13;r++) {
cardeval(r);
row[r] = [r,cardeval(r)[0],suit,cardeval(r)[1]]
mat.push(row);
}
return row;
}
我在这里使用构造函数是否正确?我可以通过将参数放在新对象旁边(在本例中为Evalcard()
)来调用var cardeval
的实例吗?
答案 0 :(得分:1)
您的“Evalcard()”构造函数返回一个数组。你不能对数组进行函数调用;它没有意义。
我认为你想要的只是:
function Buildmatrix(mat,suit) {
var row = [];
for (var r = 1;r <= 13;r++) {
var nameval = new Evalcard(r); // thanks @patrick dw
row[r] = [r,nameval[0],suit,nameval[1]]
mat.push(row);
}
return row;
}
(另请注意,我添加了一些丢失的var
个关键字 - 请勿忘记var
!)
因为你还是要返回一个数组,所以没有理由把它当作构造函数。