2014-09-06 57 views
-1

我有一個問題,我無法讓我的JavaScript計算器工作。當在瀏覽器中顯示時,該部分將顯示實際的代碼行而不是返回的答案。這是我迄今爲止所擁有的。計算在函數b()中,並打印在底部的document.write()中。JavaScript:計算器使用變量


的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); 
+1

請勿使用document.write:http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practice – 2014-09-06 11:27:24

回答

5

你的問題很可能是這些行:

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

在括號中的=assignment,而不是equality comparison。使用

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