为什么它说我的方法没有在 javascript 中定义?

egj*_*mn1 0 javascript listener

我有一个 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);
    }
.
.
.
Run Code Online (Sandbox Code Playgroud)

当我按下标记时,我收到此错误:

Uncaught TypeError: this.pressed is not a function
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?

Ele*_*Ele 6

没有使用正确的上下文,您可以使用箭头函数解决这个问题

this.marker.addListener('click',() => { this.pressed(); }, false);
                                   ^
Run Code Online (Sandbox Code Playgroud)