Schließen sich die Pfeilfunktionen von ES6 immer noch über "this", auch wenn sie es nicht verwenden?

Ich versuche die Regeln zu verstehen, wannthis ist in einer ES6-Pfeilfunktion lexikalisch gebunden. Schauen wir uns das zuerst an:

function Foo(other) {
    other.callback = () => { this.bar(); };

    this.bar = function() {
        console.log('bar called');
    };
}

Wenn ich ein @ konstruienew Foo(other), für dieses andere Objekt ist ein Rückruf festgelegt. Der Rückruf ist eine Pfeilfunktion und dasthis in der Pfeilfunktion ist lexikalisch an das @ gebundFoo Instanz, so dass dieFoo wird kein Müll gesammelt, auch wenn ich keinen anderen Verweis auf das @ behalFoo um

Was passiert, wenn ich das stattdessen mache?

function Foo(other) {
    other.callback = () => { };
}

Jetzt habe ich den Rückruf auf NOP gesetzt und erwähne niethis drin.Meine Frage ist bindet die Pfeilfunktion noch lexikalisch anthis, das @ behaltFoo lebend solangeother lebt, oder darf dasFoo Müll in dieser Situation gesammelt werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage