this
キーワードを使用しないでください。内部で変更されないものを使用してくださいaddListener
:
function test() {
foo.message = "Hello World";
this.marker = //A google marker object
google.maps.event.addListener(this.marker,'click', function(mouseEvent) {
alert(foo.message);
});
}
またはさらにクリーン:
function test() {
var message = "Hello World";
this.marker = //A google marker object
google.maps.event.addListener(this.marker,'click', function(mouseEvent) {
alert(message);
});
}
または、次のようにすることもできます。
function test() {
this.message = "Hello World";
this.marker = //A google marker object
var self = this;
google.maps.event.addListener(this.marker,'click', function(mouseEvent) {
alert(self.message);
});
}
this
最後に、本当にクリック ハンドラー内で使用したい場合は、以下を使用できますbind
。
function test() {
this.message = "Hello World";
this.marker = //A google marker object
google.maps.event.addListener(this.marker,'click', myFunc.bind(this) );
function myFunc(mouseEvent) {
alert(this.message);
}
}