@tofukimuchi

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

javascriptライブラリの dojo にて、lang.hitch は何をしているのでしょうか。

解決したいこと

javascriptライブラリの dojo にて、lang.hitch という関数が何をしているのかが
よくわかりません。
誰か教えていただけませんでしょうか。

0 likes

1Answer

javascriptでコールバック関数を指定した場合、呼び出されたコールバック関数の中で this が特定の物をさすように書き換えられることがあります(html の要素だったり、使用しているフレームワークのオブジェクトだったり)

  • html 要素の onclick にコールバック関数を指定した場合、コールバック関数内での this は html 要素をさす
  • setTimeout にコールバックを指定した場合、コールバック関数内での thiswindow をさす

しかし、場合によっては、this が違うものであってほしいことがあります。
例えば、あるクラスのメソッドを呼びたいときには this はクラスのインスタンスであってほしいとか、コールバック関数を指定したときの this のままであってほしいとか。

そのような場合に lang.hitch() を使います。

例えば lang.hitch(scope, func) のように呼び出すと、新しい関数が返ってきます。
その新しい関数を呼び出すと、関数 func が呼び出され、その関数中では thisscope になっているということです。

1Like

Your answer might help someone💌