javascriptライブラリの dojo にて、lang.hitch は何をしているのでしょうか。
0 likes
javascriptでコールバック関数を指定した場合、呼び出されたコールバック関数の中で this が特定の物をさすように書き換えられることがあります(html の要素だったり、使用しているフレームワークのオブジェクトだったり)
onclick
にコールバック関数を指定した場合、コールバック関数内での this
は html 要素をさすsetTimeout
にコールバックを指定した場合、コールバック関数内での this
は window
をさすしかし、場合によっては、this
が違うものであってほしいことがあります。
例えば、あるクラスのメソッドを呼びたいときには this
はクラスのインスタンスであってほしいとか、コールバック関数を指定したときの this のままであってほしいとか。
そのような場合に lang.hitch()
を使います。
例えば lang.hitch(scope, func)
のように呼び出すと、新しい関数が返ってきます。
その新しい関数を呼び出すと、関数 func
が呼び出され、その関数中では this
は scope
になっているということです。