時にのみ、特定のオブジェクトフィールドの値を変更します。JavaScriptを - 私はこのコードを持っているJSランタイム
<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
呼び出しが正しい値を表示します。 第2のalert
コールディスプレイNaN。
私は2つのライン(sideA
とsideB
にも新しい値を設定することをコメントし、その後、第二alert
呼び出しは、正しい値を表示コメントを解除した場合。
私は何をやっている/私は間違って理解したのですか?
ありがとうございます。あなたは50
参照する側のCを設定した場合
2番目のシーンでは、三角形がありません。あなたは3,4の50の側面からそれを構築することはできません。 https://en.wikipedia.org/wiki/Triangle_inequality –
'calc'はおそらく否定的です。負の数から平方根を得ることはできません。この問題は特にオブジェクトとは関係ありません。 –
確かに、私はあまりにも精神的にこだわっていて、JSオブジェクト/スコープに関連した問題を抱えていました。私はこの明らかな事実を単に逃しました... – Serban