イメージをロードし、読み込んだ後にメソッドを呼び出すクラスを作成しています。オブジェクトへのリンクを匿名関数に送信するにはどうすればよいですか?
function Texture(){
this.afterload = function(){
document.write("loaded!");
}
this.load = function(name){
this.img = new Image();
this.img.src = name;
this.img.onload = function(){
// there is the problem - how to pass "this" to anonymous function?
this.afterload();
}
}
}
texture = new Texture();
texture.load("something.png");
// now it should write "loaded" after loading the image.
ただし、問題はリンクをオブジェクトに渡すことです。私がこれを使うと、うまくいきません。
オブジェクトインスタンスを匿名メソッドに渡す方法はありますか?
this.load = function(name){
this.img = new Image();
this.img.src = name;
var _this = this;
this.img.onload = function(){
_this.afterload(); // use local variable, '_this', instead of 'this'
};
};
匿名関数は、「キャプチャ」またはその変数を「オーバー閉じて」、ともまだそのを含む後にそれを参照することができるようになりますでしょう:あなたはレキシカル変数にthis
をコピーする必要があり
これはそれだと思います!どうもありがとうございました。 – Kuka
@Kuka:ようこそ! – ruakh