2016-07-18 23 views
0

私は、この変数を持っている:TypeScript関数内の外部変数を使用します。

public originalData: Array<any> = []; 

と、この機能:

canvas.onclick = function (evt) { 
      console.log(this.originalData); 
} 

機能はthis.originalDataを見ることができない - 私は私の「onclickの中に適切にそれと他の変数にアクセスして行くのですか' 方法?私は今、私は、関数のこの外に行うことができます。

var dataCopy = this.originalData; 

をと「dataCopy」を介してアクセスしますが、が新しいVAR変数を作成せずに変数にアクセスする方法はありますか?

答えて

1

恐らく最も良い方法はthe ES6 arrow functionです。

矢印関数式は、関数式よりも構文が短く、この値を字句的にバインドします(このthis、arguments、super、またはnew.targetをバインドしません)。あなたのアプリケーションのために

それは次のようになります。

canvas.onclick = (evt) => { 
    console.log(this.originalData); 
}; 

あるいは:

canvas.onclick = e => console.log(this.originalData); 
0

これはJavaScriptで少しトリッキーです。あなたの関数のthisは関数を指しています。 typescriptを使用しているので、おそらく変数と関数をラップするクラスがあります。お試しくださいClassName.originalData

関連する問題