謎などと大袈裟な事を書きましたが、どうしても定義が見つからなかった構文があったのです。以下のオブジェクトのメンバ宣言です。何処かにあるはずなのですが、見つかりません。
オブジェクトのメンバ宣言をするときに以下の例ようにしてSettingとGettingを簡単に宣言し、利用方法も簡単になります。
function MyObject() {
}
MyObject.prototype = {
get id() {
return this._id;
},
set id(x) {
this._id = x;
},
}
function myCode() {
myObject = new MyObject();
myObject.id = 3;
alert('id is ' + myObject.id);
}
上の式でメンバ変数を宣言できますし、WebKitのサンプルコードsticky-notesのようにメソッドも宣言できます。この便利な点はメンバ変数とそのset getが羅列するだけで簡単に宣言できる点です。また、下のtest()のように簡単にメンバ変数への代入と呼び出しができます。ただし、上の関数を使えるのは一度だけのようです。同じオブジェクトに追加宣言はできず、追加できるのはメソッドのMyObject.prototype.methodNameだけのようです。
ストレステストはしていませんが、上記のサンプルコード程度ならFirfox 3.6.3でも動作しました。
ECMAScriptにおける「オブジェクトリテラル」と言う書式では、配列を拡張してオブジェクトを宣言できます。
myObject = {
myVar: -- numbers,
myVar: '-- words',
myFunc: function() {
-- definition
}
}
似てはいるのですがどうも違うように思います。<最初にもどる> <pre>
0 件のコメント:
コメントを投稿