Zweifel an Javascript bestehen - Funktionserinnerung

Ich habe Probleme mit einem Beispiel für das Auswendiglernen eines Buches. Hier ist der Code:

Function.prototype.memoized = function(key){
    this._values = this._values || {};
    return this._values[key] !== undefined ? this._values[key] : this._values[key] = this.apply(this, arguments);
}

Hier ist einGeige mit einem vollständigen Beispiel

Was ich nicht wirklich verstehe, ist, wie dieser Code funktioniert und was er tut, insbesondere dasapply Teil:

return this._values[key] !== undefined ? this._values[key] : this._values[key] = this.apply(this, arguments);

Ich weiß und verstehe wieapply funktioniert

Die Methode apply () ruft eine Funktion mit diesem Wert und den als Array bereitgestellten Argumenten auf

nehme an, dassthis._values[key] entsprichtundefined, dann ist der zurückgegebene Wertthis.apply(this, arguments): startet dieser Code denmemoized Funktion? Ich habe versucht, einige Protokolle in die Funktion einzufügen, um zu sehen, wie oft die Funktion aufgerufen wird, aber es scheint, dass sie nur einmal gestartet wurde.

Kann mir bitte jemand einen Hinweis geben? Es ist wahrscheinlich eine Scheinfrage, bitte haben Sie etwas Geduld, danke

Antworten auf die Frage(2)

Ihre Antwort auf die Frage