謎などと大袈裟な事を書きましたが、どうしても定義が見つからなかった構文があったのです。以下のオブジェクトのメンバ宣言です。何処かにあるはずなのですが、見つかりません。
オブジェクトのメンバ宣言をするときに以下の例ようにして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 件のコメント:
コメントを投稿