currentTargetで無名関数を使わずイベントターゲットを取得

たとえば、jQueryでイベントを設定するとき、こんな書き方をしたことはありませんか?

<br />
// フォーカスが外れると改行を削除する<br />
var deleteLinefeed = function(obj) {<br />
	var v = obj.val();<br />
	v = v.replace(/¥n/g, '');<br />
	obj.val(v);<br />
};<br />
$('textarea').on('blur', function(){<br />
	deleteLinefeed($(this));<br />
});<br />

この無名関数が冗長で気になる!
なにより、無名関数で紐付けたら、イベントリスナーを削除しにくいです。

そこで、イベントオブジェクトのcurrentTargetを活用すると
このようにスッキリさせられます。

<br />
// フォーカスが外れると改行を削除する<br />
var deleteLinefeed = function(e) {<br />
	var obj = $(e.currentTarget),<br />
	v = obj.val();<br />
	v = v.replace(/¥n/g, '');<br />
	obj.val(v);<br />
};<br />
$('textarea').on('blur', deleteLinefeed);<br />

currentTargetで取得するのは、イベントを紐付けてあるオブジェクトです。
これと似たtargetでは、イベントを発動させたオブジェクトを取得できます。

参考:
三章第五回 イベントオブジェクト — JavaScript初級者から中級者になろう — uhyohyo.net

関連記事