天使と悪魔選手権

私以外が作ったjavascriptプログラムでこのように書かれていました。

var h = null;
var c = null;
//省略
return {c : c, h : h}

このreturn文のところの意味を知りたいのです。
{x : x, y : y}という形式でプログラムすると、
どのような条件として判断されるのでしょうか?

このプログラムの意味が分かりませんでした。
もしよろしければ、教えて頂けませんか。
よろしくお願い致します。

A 回答 (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
といったように使われます。私は使ったことないです。

独り言:あぁ、メモリの悲鳴が・・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/27 15:58

別の例。


これでわかりますか?

var x=1;
var y=2;
var a={
 c : x,
 h : y
};
return a;
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/27 15:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!