• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javascript について質問です。)

Javascript メソッドの使い方に関する質問

このQ&Aのポイント
  • Javascript のメソッドについて勉強していますが、実行時に undefined と出力される問題が発生しました。
  • 円の面積と円周を求めるためのプログラムを書いたのですが、正しい宣言や出力方法がわからず、お手上げ状態です。
  • どのようにすれば正しい結果が得られるのか、教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5239/13707)
回答No.2

> return Math.PI * this.radius * this.radius; > 上記のreturn で値を返していると思うのですが、これは間違っているということでしょうか? それは、Circle という関数の中の area という変数に入っている関数がreturnしています。 area を実行する処理はどこにも書かれていないので実行されません。 Circle 内の処理を以下のようにすると値が返って来ると思います。 function Circle (radius) { this.radius = radius; this.area = function () { return Math.PI * this.radius * this.radius; }; // define a perimeter method here this.perimeter=function(){ return Math.PI * this.radius *2 }; return this.area(); };

34ttta
質問者

お礼

助かりました。 ありがとうございます。

その他の回答 (2)

  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.3

説明は省きますが、あなたがやりたいであろうことを推測して修正しました。円の面積は「1/2πr^2」なので2で割る必要があるのでそこも修正しましたよ。こういうことですよね? function Circle(radius) { this.radius = radius; this.area = function() { return Math.PI * this.radius * this.radius / 2; }; // define a perimeter method here this.perimeter = function() { return Math.PI * this.radius * 2 }; }; var A = new Circle(3); console.log(A.area()); console.log(A.perimeter());

34ttta
質問者

お礼

ありがとうございます。

  • t_ohta
  • ベストアンサー率38% (5239/13707)
回答No.1

function Circle (radius) {} は何も return していないので A.new(2) の実行結果は undefined です。

34ttta
質問者

補足

return Math.PI * this.radius * this.radius; 上記のreturn で値を返していると思うのですが、これは間違っているということでしょうか?

関連するQ&A

専門家に質問してみよう