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