1

私は自分のアプリケーションで長い間javascriptゲッターを使用していて、常に考えていました

彼らがこのように働くこと:

myobject.prototype.__defineGetter__('something', function () {
   return DoSomeHeavyComputation() // this will be executed only once and will be saved
})

new myobject()
myobject.something // the computation will be done here
myobject.something // no computation will be done here.

毎回計算が行われていることがわかりました...

それらが実際にどのように機能するかを示すリソースまたは何かがありますか?

4

3 に答える 3

1

オブジェクトのプロパティにゲッターを定義すると、そのプロパティにアクセスしようとするたびに呼び出されます。

obj.prop;

結果をキャッシュする場合は、手動で行う必要があります。

同様に、オブジェクトのプロパティにセッターを定義すると、プロパティを設定するたびに呼び出されます。

obj.prop = 1;
于 2012-05-15T23:58:11.563 に答える
0

この記事は素晴らしく、プロトタイピングとオブジェクトインスタンス化の核心に深く入り込んでいます: http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/

于 2012-05-15T23:48:39.983 に答える
0

あなたはメモ化のようなものを探していると思います。

http://documentcloud.github.com/underscore/#memoize

于 2012-05-16T23:37:48.183 に答える