只改變特定對象字段的值我有這樣的JS代碼:JavaScript的 - 在運行時
<script type="text/javascript">
var triangle = new Object();
triangle.sideA = 3;
triangle.sideB = 4;
triangle.sideC = 5;
triangle. getArea = function() {
// Return the area of a triangle using Heron's formula
var sp = (this.sideA + this.sideB + this.sideC)/2;
var calc = sp * (sp - this.sideA) * (sp - this.sideB) * (sp - this.sideC);
return Math.sqrt(calc);
};
alert ("area is: " + triangle.getArea());
//triangle.sideA = 30;
//triangle.sideB = 40;
triangle.sideC = 50;
alert ("now area is: " + triangle.getArea());
</script>
首先alert
來電顯示正確的值。 第二個alert
呼叫顯示NaN。
如果我取消這兩個註釋行(設置新值也sideA
和sideB
,那麼第二alert
調用也顯示正確的值。
我在做什麼/沒有我理解錯了?
謝謝。
在第二場景中,你沒有三角形。你不能把它建成3,4個50邊。 https://en.wikipedia.org/wiki/Triangle_inequality –
'calc'可能是負值。你不能從負數得到平方根。這個問題與物體無關。 –
事實上,我很專注於JS對象/範圍相關的問題,我只是錯過了這個明顯的事實... – Serban