私はゲームを作っていて、Prototype JSフレームワークを使ってオブジェクトを使って簡単に作業しています。 私自身のオブジェクトの中でDOM以外のイベントのための独自のメソッドを作った。OOPで 'this'の問題JS
StageObjectはScreenオブジェクトの子であり、load()メソッドはオブジェクトのイメージをロードし、ロードされるとすぐにイベントを発生させます。 ここにある:objectLoadedHandlerはStageObjectに属し
var StageObject = Class.create(Screen, {...})
StageObject.addMethods({
/*.....*/
load:function(){
this.img = new Image();
this.img.src = "./src/img/"+this.src;
this.img.onload = this.objectLoadedHandler();
},
})
。別のイベントが発生すると、whitchハンドラがScreenオブジェクトにあり、StageObjectにはありません。問題は、この2番目のハンドラの内部に'this'が現在のオブジェクト(画面)を指していないことです。私はそれが何を指しているのか分かっていませんが、私はさらなる計算に必要なスクリーンオブジェクトのプロバティには到達できません。それについてアドバイスをお願いします。
ありがとうございます!私はPrototypeを学ぶのにもっと時間を費やすべきだった。私はこれを見つけたhttp://www.prototypejs.org/api/function/bindそしてそれは私にすべてを説明した。 – soin08