- ベストアンサー
トリッキーなJSの文法(prototype.jsなど)が分かりません
Ajaxの「prototype」( http://www.prototypejs.org/ )などで 下記のようなfunctionの記述方法をよく見かけます。 ▼Prototype.js(ver1.5.0) 20行目抜粋 ---------------------------------------- var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } -------------------------------------------- でも、私には高度すぎて以下の点がどうしても読み解けません。 (1)var Class = {~~~~~~} が、何をしているのか分かりません。 配列なら[ ]ですし関数か何かを省略した宣言の記述方法なのでしょうか? (2)create: が何なのか分かりません。必死で調べたら型を宣言しているような感じでしたが、 見慣れない「:」を使ったプログラムで検討もつきません。 私が知っているfunction宣言はこの2パターンのみしか知りません。 ・一般的なfunction宣言 function test(hikisu){ //処理内容 } ・無名関数でのfunction宣言 var a = function(x) { //処理内容 } ぜひ教えていただけませんでしょうか。 どうぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1. {}はオブジェクト初期化子である。つまりnew Object()と同じ 2.{variable : value}と書くので変数名と値の区切りに:を使っている。 valueのところにfunction(){}を書いても全く問題ない。 以下を参考に var array = new Array(); var array = []; // 配列の初期化子 array = [1, 2]; // まとめて初期化 array[0] // => 1 array[1] // => 2 var object = new Object(); var object = {}; // オブジェクトの初期化子 object = {a : 1, b : 2}; // まとめて初期化 object.a // => 1 object.b // => 2
その他の回答 (1)
ここに[翻訳]JSON入門というページがあります。 http://d.hatena.ne.jp/brazil/20050915/1126709945 その中に オブジェクト { メンバ } {} メンバ 文字列 : 値 メンバ , 文字列 : 値 配列 [ 要素 ] [] 要素 値 要素 , 値 値 文字列 数値 オブジェクト 配列 true false null こんな記述があります。 この中で値にオブジェクトがあります。 ではオブジェクトとは何かと言うと、ここに”オブジェクトモデルの詳細”と言うページがあります。 http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide:Details_of_the_Object_Model こんなことだと思いますよ。
お礼
JSONは聞いたことがある程度で、ぜんぜん知りませんでした。 また、教えていただいた[翻訳]JSON入門サイト(http://d.hatena.ne.jp/brazil/20050915/1126709945)に、記述文法の構造図が分かりやすく掲載されていました!!! かなり検索しまくっても見つからなかったので感激です。 全記述方法が載っているのでとても重宝しています。 どうもありがとうございました。
お礼
var Class = {~~~~~~} はnew Object()のことだったんですね。 変数への代入も、「=」を使わず「:」で行う方法も知りませんでした。 (型の宣言かなにかと大勘違いしてました・・・) 大変助かりました。どうもありがとうございました。