読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

typescriptでclassのmethod内のthisがwindowになってしまう

以下のようにメソッドを定義すると、thisがwindowになってしまう。

class Main
{
     update(): void
     {
         requestAnimationFrame(this.update);  //thisはwindow
     }

}

以下のようにarrow functionを使って書くとwindowにならない。

class Main
{
     update = () => {
         requestAnimationFrame(this.update);  //thisはMainオブジェクト
     }

}

JSはthisの扱いが面倒だ。。

参考: