PV0下記のHTMLがあり、valにGetValuesで実行したajax通信の結果をバインドさせています。Button</button>javascriptで以下のように書くと正常にvalに通信結果がバインドされます。ValueViewModel());しかし、上記のjavascriptを以下のtypescriptで書き換えた場合はバインドされません。試しにHoge()を実行させてみるとバインドされます。どのような記述方法であればajax通信の結果をバインドさせることができるのでしょうか?お知恵を拝借頂ければ幸いです。ValueViewModel());2016/7/31自己解決しました。this,」を追加することで解決しました。更新順0ちょっと一部正確な説明でないかもしれませんが、そもそもの問題としては、thisは実行している関数の状況に応じて変わってくるということです。イベントにハンドリングする場合にはハンドリングの仕方にもよってきますが、それは今回は別の話ですかね。今回はsuccessプロパティ内でthisを参照しているので、そこでのthisとはsuccessプロパティにとってのthisオブジェクト(たぶんajaxオブジェクト)になります。そのために最初のjavascriptではselfにthis(ValueViewModel自身)を退避しておき、GetValuesではselfを使ってValueViewModelのvalにアクセスしているわけです。ところがTypeScriptのコードにはそれに相当するものがありません(コンパイル後のコードを見るとわかると思います)ので、thisはajaxオブジェクト(それかsuccessコールバック関数自体)を指していると思いますので、そこ(this)のval関数を呼び出してもValueViewModelには影響がありません。jQueryのajaxにはそれを解決するために、Callback内のthisをcontextで指定しておいたものに変更する仕組み(prototype.bind関数を使ってるんだと思います)があります。contextプロパティにthis(ajax関数の引数として展開されるので、GetValues実行時のthis、つまりValueViewModel)を設定しておくと、successコールバック実行時のthisがそれになる(successコールバックが、ValueViewModelのコンテキストで実行される)ので問題が解決するということでしょう。試してないので間違ってるかもしれません。今回の問題はsuccessコールバック内のthisなので効果はないでしょう。ここには影響しないと思う。};以下略また、試してないですが元のjavascriptの様に別の変数に退避しておけば動作するんじゃないかと思います。(0)flied_onionさん、とても丁寧な解説本当にありがとうございました。thisについて大分理解できました。提示して頂いたサンプルなども色々触ってさらに理解を深めてみたいと思います!重ねてお礼申し上げます。22:02ウォッチこの質問への回答やコメントをメールでお知らせします。