2016-11-17 9 views
1

でオブジェクトのメソッドをMemoizing:は私がやるだろうとJSで活字体

var o = { 
    foo: memoize(foo) 
}; 

は、私は同様に活字体でインスタンスメソッドをmemoizeどのように行うのですか?

class C { 
    // How do I memoize this function? 
    public foo() :any { 
    } 
} 

私は、既存の活字体のコードベースに設立されたイディオムで収まるようにclassを使用したいです。ここで

+0

クラスにそれを変更する意図は何ですか? TSを使用しているからといって、すべてをクラスに変換する必要はありません。とにかく書いたと思われるJSを書いて、必要な場所にタイプ注釈を追加してください。 –

+0

typescriptクラスのコンストラクタから任意のオブジェクトを返すことはできますか?これは私のコードベースではないので、私はAngularインジェクタを利用する必要があるので尋ねます。私がTSで何かしようとするたびに、私は予期しないロードブロッキングに遭遇する。 – Ben

+0

TSはこれと何が関係していますか?クラスはES6の機能です。 –

答えて

1

はそれを行うには、2つの方法がある:

// With Typescript syntax 
class C { 
    foo = memoize(() => { 
    }); 
} 

// Using ES6-style initialization instead of field initializers 
class C { 
    foo:() => any; 
    constructor() { 
     this.foo = memoize(() => { 
     }); 
    } 
}