人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptのGreasemonkeyやjavascriptのライブラリを見ていると

(function(xxxx){
yyyy.zzzz = {
aaaa:[]
,bbbb:[]
,cccc:'dddd'
,eeee:false
,ffff:true
};
})(this);

このような書き方とか

var xxxx = aaaa.bbbb.cccc([
'dddd//eeee//ffff//gggg'
]);

このような[]大括弧で挟んでいるような記述とか
よく見かけたりするのですが、パッと見て何をしているのかわかりません。このような記述の読み方とか書き方などが載っている教本やチュートリアルってあるのでしょうか、どこで調べたら良いのでしょう

無名関数だとか関数の戻り値が変数に代入できる、ということはなんとなくわかっているレベルです

●質問者: tiritomato
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Greasemonkey JavaScript XXXX チュートリアル ライブラリ
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● van-dine
●20ポイント

[?]は配列を、{?}はオブジェクトを簡易的に作るものです。

例えば、Array("a", "b", "c")のように、[1, 2, 3]で配列を作ったり、

{ name : "misha", age : 17 }で、nameプロパティとageプロパティを持つ

オブジェクトを作ることができます。

◎質問者からの返答

[?]は配列を作ってるんですね。なるほどー。

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


2 ● fester
●20ポイント

こちらでいかがでしょうか

JSONの記法

戯れ言++入門 JSON

◎質問者からの返答

JSONと同じ書き方なんですね。参考にしてみます。

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


3 ● あぱ
●20ポイント

ご存知かもしれませんが。

連載:Ajax時代のJavaScriptプログラミング再入門 - @IT

◎質問者からの返答

おもしろそうです。読んでみます


4 ● gatchan
●40ポイント ベストアンサー

まず例文を分解してみます。(上の例)

(function(xxxx){//----------【1ここから】
  yyyy.zzzz = {//---【2ここから】
  aaaa:[]
  ,bbbb:[]
  ,cccc:'dddd'
  ,eeee:false
  ,ffff:true
  };//---【2ここまで】
})();//----------【1ここまで】

※thisはややこしいのではずしました。

外のつくりから中へ見ていきます。

一番外【1】

(function(xxxx){

})();

function(xxxx){}を()でくくり();で実行します。(ややこしいですね)

これは無名関数を定義して、同時に実行しているということです。

たとえば、aaaという関数を定義して同時に実行させるには

(function aaa(){/*関数の内容*/})();

でOKです。

では、次【2】

yyyy.zzzz = {

};

これはyyyyというオブジェクトのzzzzプロパティを設定しています。

{}の中身を,(カンマ)で区切ってその数だけ分プロパティとして設定できます。

たとえば、オブジェクトObjに3つのプロパティを設定します。

Obj={moji1,moji2,moji3};

さらにプロパティに意味を持たせるような書き方

Obj={moji1:"おはよう",moji2:"こんにちは",moji3:"こんばんは"};

実際にどう使うか?

alert(Obj.moji1);//「おはよう」が表示される

おおまかにいえば【1】と【2】の構成です。

【2】の中でプロパティをいろいろ設定して無名関数を実行させてるだけです。

そのなかで配列[]やオブジェクト{}で書いている。

オブジェクトの書き方というのはJavaScriptの一機能にすぎないので書籍はわかりませんが

http://f32.aaa.livedoor.jp/~azusa/index.php?p=array&t=js

こういったサイトをみているとつかめてくると思います。

次に

http://www.tokumaru.org/JavaScript/

こういったサイトなど。

こういったサイトをとっかかりとしてわからない「書き方」があれば検索する、ということを少し繰り返せばわかってくると思います。

いかがでしょう。

◎質問者からの返答

細かく書いていただいて大変わかりやすいです。

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


5 ● gatchan
●40ポイント

すみません、見直したらミスがありましたので訂正します。

下記の書式は間違っています。

Obj={moji1,moji2,moji3};//間違った書き方

{}で囲むときは{キー:値}とかかなければいけません。

単純,カンマ区切りなら[]での配列にすべきです。

失礼しました><;

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ