JavaScriptの擬似クラスのthisがうまくいかないとき

YY3ai2ui24 14views 更新:2015年11月10日

擬似クラスでprototypeなどをevent.addLisner()などすると、そのときのグローバルのthisが記述したところのオブジェクトを返さないことがあります。

var handler = (function (obj){
  return function(){obj.popInfo(obj);};
})(this);

hoge.event.addListener(this.foo, 'click', handler);

handlerでthisのリンクを保持した関数オブジェクトにくるんであげて、それを引数で渡すと、プロトタイプで、thisの参照を使うことが出来ます。

Something.prototype.hello = function (obj){
  console.log("hello " + obj.name);
}

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません