引数によって関数の呼び出しオブジェクトが変わる goog.events.listen
goog.events.listen(src, type, listener, opt_capt, opt_handler) は、5 番目の引数 opt_handler を指定することで、関数の呼び出しオブジェクト this を変更することができます。
// opt_handler なし goog.events.listen(src, EVENT_TYPE, function (e) { // |this| -> src オブジェクト }); // opt_handler あり goog.events.listen(src, EVENT_TYPE, function (e) { // |this| -> other オブジェクト }, false, other);
この仕組みを知っていれば、
var that = this;
といった、this の回避をしなくて済みそうです。
ちなみに、4 番目の引数 opt_capt は true: キャプチャ(親から子へイベント伝播)、false: バブル(子から親へイベント伝播)。