2

私はTypescriptを初めて使用し、自分のものに導入しようとしていますが、いくつかのスコープとアロー関数に問題があります.

JavaScriptでは、私のコードは次のようになります...

var model = params.model;

model.Prototypes.bind('change', function(e){
   // some code to execute when the event occurs
   model.set([some values]); // this performs an operation to the actual top level model
});

さて、これには 2 つの問題があります。Typescriptでこれを行うときは、このようにします...

class ClassName {
   model: any;

   subscribe() {
      this.model.Prototypes.bind("change", function(e){
         // FIRST PROBLEM
         this.model ....
      });
   }
}

さて、これはラベル付けされた部分まで機能します。this.model「クラス」ではなく、関数のコンテキストにあるため、私が考えるものへの参照ではなくなりました。だから私は掘り下げarrow functionて、コンテキストを保持するため、を使用する必要があることを学びました。

change問題は、アロー関数を実行する方法が思いつかず、必要なパラメーター(バインド イベントの値やfunction(e)パーツなど) を通過する方法が思いつかないことです。パラメータをまったく期待しない例しか見たことがありません。

4

1 に答える 1

3

アロー/ラムダ構文は次のようになります。

class ClassName {
   model: any;

   subscribe() {
      this.model.Prototypes.bind("change", e => {
         // FIRST PROBLEM
         this.model ....
      });
   }
}

複数のパラメーターがある場合は、次の形式を使用します。

(p1, p2, p3) => { ... }

お役に立てれば、

于 2014-01-17T21:56:20.420 に答える