Tuesday, September 01, 2009

jQueryプラグイン勉強II

さらにjQueryプラグイン作成の勉強。
というよりJavaScriptの勉強。

JavaScriptは、どんな形のオブジェクトも、宣言なしで作れるようです。
オブジェクト初期化子(Object Initialiser) {} - bnote

JavaScriptには、少し変わった式がある。オブジェクト初期化子を使用することで 指定した名前のプロパティに初期値を持つオブジェクトを返します。

var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}

上記例では、{}で囲まれたCreateプロパティの部分が該当します。



「いきなり定義もしていないクラスのインスタンスを作るのか?」
と、C++とJavaを経験してきた私としてはかなりびっくりな初期化ですね。
多くのプラグインの中で多用されています。


なんでこんなことができるのか、はこちらを参照したほうがよさそうです。
JavaScriptは、オブジェクトというものに、とても自由度を持たせているようです。

JavaScript: オブジェクト指向の手法によって高度な Web アプリケーションを作成する
JavaScript オブジェクトはディクショナリである
C++ や C# では、オブジェクトというとクラスや構造体のインスタンスを意味します。オブジェクトにはプロパティやメソッドが含まれていますが、それらはオブジェクト がどのテンプレート (クラス) からインスタンス化されたかによって異なります。このようなことは JavaScript オブジェクトにはありません。JavaScript では、オブジェクトは名前と値のペアの集まりに過ぎません。

No comments:

Post a Comment