通过使用构造函数构建矩阵

时间:2011-08-10 18:40:15

标签: javascript

这是我的代码:

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的实例吗?

1 个答案:

答案 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!)

因为你还是要返回一个数组,所以没有理由把它当作构造函数。