アドバイスをお願いします。b()`s 関数の関数内で a() 関数を呼び出そうとしています。
この a() 関数をリンクする方法がわかりません。
d = function() {
this.a = function() {}
this.b = function() {
x.hover(function() { this.a() });
}
}
アドバイスをお願いします。b()`s 関数の関数内で a() 関数を呼び出そうとしています。
この a() 関数をリンクする方法がわかりません。
d = function() {
this.a = function() {}
this.b = function() {
x.hover(function() { this.a() });
}
}
これを行う1つの方法は次のとおりです。
d = function(){
var self = this;
this.a = function(){};
this.b = function(){
x.hover(function(){ self.a() });
}
}
JSthis
では、関数の呼び出し方法に応じて設定されます。匿名関数内で渡すのは、x.hover()
期待したものではありません。右への参照を保持し、this
それを使用するだけです...
さらに読む:MDNのthis
ページ。