Veraltung der Eigenschaft „Arguments.callee.caller“ in JavaScript
Die Eigenschaft „arguments.callee.caller“, die den Zugriff auf die aufrufende Funktion ermöglichte, wurde Aufgrund mehrerer Bedenken in JavaScript veraltet.
Motivation für Veraltet
Alternativen mit benannten Funktionsausdrücken
Mit ECMAScript 3 wurden benannte Funktionsausdrücke als Lösung eingeführt:
[1,2,3,4,5].map(function factorial(n) { return (!(n>1))? 1 : factorial(n-1)*n; });
Dieser Ansatz bot mehrere Vorteile:
Abwertung von Arguments.callee.caller
Zusätzlich zu den Problemen mit arguments.callee hatte Function.caller auch Auswirkungen auf die Leistung und erschwerten Optimierungen. Die ständige Notwendigkeit, den Aufrufstapel zu überprüfen, behinderte Inlining und andere Optimierungen. Daher wurden sowohl arguments.callee.caller als auch Function.caller veraltet, um diese Probleme zu beseitigen.
Trotz der Ablehnung unterstützen einige Browser diese Eigenschaften immer noch, von ihrer Verwendung wird jedoch abgeraten. Es empfiehlt sich, für den Zugriff auf und die Verwaltung der Aufrufkette alternative Ansätze zu verwenden, z. B. benannte Funktionsausdrücke.
Das obige ist der detaillierte Inhalt vonWarum wurde die Eigenschaft „arguments.callee.caller' in JavaScript veraltet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!