イベントハンドラとインスタンス関数イベントハンドラとインスタンス関数

<< このエントリーを含むはてなブックマーク >>

Javascriptでは、C++でいうコールバック関数みたいなのの関数ポインタみたいなのを利用する機会が多いです。

onMouseとかonClickとかonLoadとか、onReadyStateChangeとかとかとか。
こーゆーのをイベントハンドラっていいますね。

これらに、インスタンス関数をセットする場合、注意すべきことがあります。


Ajaxやりだすと、共通の処理をクラス化したくなります。
特にネットワーク接続関係をクラス化していきたかったんですが、onreadystatechangeへクラスメソッド(メンバ関数)を渡したときに問題が発生しました。

渡された関数から、this参照できないんです。
これではクラスの意味がまったくありません・・・。

でもそれをクロージャを使って回避する方法が以下に書かれてます。



イベントハンドラ周りのコードを2行程度追加するだけでできるので、とても簡単です。

2026年1月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

月別 アーカイブ

2019年
2018年
2016年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年