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

<< | コメント(0) | トラックバック(0) このエントリーを含むはてなブックマーク >>

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

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

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


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

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

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



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

トラックバック(0)

トラックバックURL: http://exe.tyo.ro/mt/mt-tb.cgi/664

コメントする

2014年10月

      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  

月別 アーカイブ

2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年