ログ日記

作業ログと日記とメモ

prototype.jsのbind

hawkさんにコメントをいただいたのでコードの見直し。
どの部分で問題になってたのか忘れてしまったorz


でも数カ所で

obj.func1 = function(element){
  var obj = this;

  Event.observe(element, 'onclick', function(e){ obj.func2(); });
}
obj.func2 = function(){...}

とやってる。
これはbindを使うべき・・なのかな。


bindって使ったことなかったけど

Event.observe(element, ’event’, (function(){...}).bind(element))

function(){...}のthisがelementに固定されるわけか・・。これをelementじゃなくて呼び出しているオブジェクト自身にしようと思えばthisと書くだけでいいのかな?スコープの範囲が変わってるわけではないからthisでいいんだろう(たぶん
bindAsEventListener()も使っていった方がすっきりしそうだけど、もうちょっと理解が追いついてからにしよう・・。