引用使用自定义构造函数创建的对象中的变量

时间:2013-01-31 12:21:08

标签: javascript

尝试在JS中使用它:

var calculate = function(votesA, votesB, votesC) {

    var total = votesA + votesB + votesC;

    function Results(resultsA, resultsB, resultsC) {
        this.resultsA = resultsA;
        this.resultsB = resultsB;
        this.resultsC = resultsC;
    }

    var curResults = new Results(votesA, votesB, votesC);

    curResults.resultsA = (votesA / total) x 100;
    curResults.resultsB = (votesB / total) x 100;
    curResults.resultsC = (votesC / total) x 100;

    console.log(curResults.resultsA, curResults.resultsB, curResults.resultsC);
}

calculate(5,4,8);
calculate(5,6,8);
calculate(6,8,9);

不确定为什么它不起作用,但我觉得这与我在curResults中引用变量的方式有关

1 个答案:

答案 0 :(得分:2)

JavaScript的乘法运算符为*,而不是x

以下行中的x给出了“意外标识符”错误:

curResults.resultsA = (votesA / total) x 100;
curResults.resultsB = (votesB / total) x 100;
curResults.resultsC = (votesC / total) x 100;

所以将它们改为:

curResults.resultsA = (votesA / total) * 100;
curResults.resultsB = (votesB / total) * 100;
curResults.resultsC = (votesC / total) * 100;
  

不确定为什么它不起作用,但我觉得这与我如何引用 curResults

中的变量有关

不,那部分没问题。尽管如此,如果您在上面的三行中立即覆盖这些值,那么在this.resultsA = resultsA;构造函数中分配resultsB(以及CResults())是没有意义的。