JavaScript:使用变量的计算器

yol*_*one -1 javascript jquery

我有一个问题,我无法让我的JavaScript计算器工作.在浏览器中显示时,该部分显示实际的代码行而不是返回的答案.这就是我到目前为止所拥有的.计算在函数中b(),并打印在document.write()底部.


JavaScript的:

//*Note that this is an external JavaScript file*
function a(a1,a2,a3) {
    this.a1 = a1;
    this.a2 = a2;
    this.a3 = a3;
    this.a4 = b;
}

var abc = new a("2", "80", "1000");
var def = new a("1.5", "40", "512");
var ghi = new a("1", "20", "256");

//Below is the calulation function I'm having problems with
function b() {
    var calculation;
    calculation = 500;
    calculation+=(this.a1 = 2) ? 200 : 100;
    calculation+=(this.a2 = 80) ? 50 : 25;
    calculation+=(this.a3 = 1000) ? 150 : 75;
    return calculation;
}

var returned_value_abc = abc.a4();
var returned_value_def = def.a4();
var returned_value_ghi = ghi.a4();

document.write("Abc object: ");
document.write("<br/>");
//Below is code to print out returned calculation value
document.write("Value: "+abc.a4);
document.write("<br/>");
document.write("<br/>");
document.write("Def object: ");
document.write("<br/>");
//Below is code to print out returned calculation value
document.write("Value: "+def.a4);
document.write("<br/>");
document.write("<br/>");
document.write("Ghi object: ");
document.write("<br/>");
//Below is code to print out returned calculation value
document.write("Value: "+ghi.a4);
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 5

您的问题很可能就是这些问题:

calculation+=(this.a1 = 2) ? 200 : 100;
calculation+=(this.a2 = 80) ? 50 : 25;
calculation+=(this.a3 = 1000) ? 150 : 75;
Run Code Online (Sandbox Code Playgroud)

=括号是分配,而不是一个平等的比较.使用

calculation += (this.a1 == 2) ? 200 : 100;
calculation += (this.a2 == 80) ? 50 : 25;
calculation += (this.a3 == 1000) ? 150 : 75;
Run Code Online (Sandbox Code Playgroud)