• ベストアンサー

return {c : c, h : h}について

私以外が作ったjavascriptプログラムでこのように書かれていました。 var h = null; var c = null; //省略 return {c : c, h : h} このreturn文のところの意味を知りたいのです。 {x : x, y : y}という形式でプログラムすると、 どのような条件として判断されるのでしょうか? このプログラムの意味が分かりませんでした。 もしよろしければ、教えて頂けませんか。 よろしくお願い致します。

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

  • ベストアンサー
  • 15mm
  • ベストアンサー率65% (65/100)
回答No.2

まず、Objectの表記方法はご存知ですか? var o={a:1, b:2, c:"3"} とかいう表記はObjectを表し、 alert(o.a) という形で、プロパティを呼び出したり、という使い方があります。 なんてのは、「javascript オブジェクト初期化子」で検索していただくとして、 本題。 仕様上、functionは1個または0個の戻り値しか返せません。   例:function f(){return 1;return 2;} はreturn 1が実行された時点で終了。 ですが、2個以上の戻り値が必要になることもあり、(人それぞれ?)   例:角度を指定し、sin と cos の両方の値を返したい     画像の縦と横のサイズを知りたい そんなときに複数の値をプロパティとして持った一つのObjectにまとめてしまえば、 戻り値は一つですむ、という解決方法があったりします。(質問内容はこれにあたります) 配列で、なんていうのもあったり。 function f(t){return {s:Math.sin(t), c:Math.cos(t),t:Math.tan(t)}} について、 var r=f(3.14) alert(r.s)//sinの値を参照 alert(r.c)//cos といったように使われます。私は使ったことないです。 独り言:あぁ、メモリの悲鳴が・・・

rock123
質問者

お礼

戻り値が複数必要な場合に使うのですね。 理解できました。 .NETのプロパティみたいなイメージですね。 ありがとうございます。

その他の回答 (1)

回答No.1

別の例。 これでわかりますか? var x=1; var y=2; var a={  c : x,  h : y }; return a;

rock123
質問者

お礼

複数の値を返したい場合にしようするのですね。 理解できました。 ありがとうございます。