小野マトペの業務日誌(アニメ制作してない篇)

はてなダイアリーの閉鎖をうけ、旧ブログ http://d.hatena.ne.jp/ono_matope/ から移行しました。続きは→ http://matope.hatenablog.com/

JavaScriptでクタクタ。

今日は、自分のコードが全然オブジェクト指向になっていなかったという事実に気づいて、それを修復するのに一日掛けてしまった…。メンバー変数のつもりが、thisキーワード付け忘れで全部グローバル変数になってて、全部指定しなおし。いやあ、変なところから参照できるなあと思ってたんだよね。JavaScript関係のサイトを読み直して、勉強しなおし。で、そんな変態的な仕様が何となく分かってきて、大体直ってきたんだけど、オブジェクトからonMouseUpイベントを呼び出すとき、

var obj=new myObj();
function myObj(){
...
this.myImage.onMouseUp="obj.scroll();";
}
myObj.prototype.scroll=function(){}

みたいに"obj.scroll();"って特定のインスタンスを指定しないといけないのは仕様としてどうなんだろう…。ダブルクォーテーション内のthisが利かない。コンストラクタ内でインスタンスを直接指定するようなコードは背中がゾワゾワするよ。今回はインスタンスが唯一だからいいけど。