我有一个JavaScript代码,并且向我的对象添加了一个事件监听器。 当我单击它时,它表示未定义我的功能。 这是我的js代码:
class Plane {
constructor(myMap, myPos, listener) {
this.createMarker(myMap, myPos);
this.clickListner = listener;
}
createMarker(myMap, myPos) {
var icon = {
url: "../Images/Plane.png", // url
scaledSize: new google.maps.Size(30, 30), // scaled size
origin: new google.maps.Point(0, 0), // origin
anchor: new google.maps.Point(15, 15) // anchor
};
this.marker = new google.maps.Marker({
map: myMap,
icon: icon,
position: myPos
});
this.marker.addListener('click', function () { this.pressed(); }, false);
}
pressed() {
this.clickListner.onClick(this);
}
.
.
.
当我按下标记时出现此错误:
Uncaught TypeError: this.pressed is not a function
为什么不起作用?
答案 0 :(得分:6)
未使用正确的上下文,您可以使用箭头功能解决此问题
this.marker.addListener('click',() => { this.pressed(); }, false);
^