In JavaScript können Methoden für benutzerdefinierte Objekte entweder über das Prototypobjekt oder mithilfe dieses innerhalb der Konstruktorfunktion definiert werden . Während der letztere Ansatz private Instanzvariablen zulässt, bestehen aufgrund der möglichen Funktionsduplizierung für jede Instanz Bedenken hinsichtlich der Leistung.
Um diesen Leistungsanspruch zu untersuchen, stürzen wir uns in ein Experiment mit dem jsperf-Benchmark-Tool: https:// jsperf.app/prototype-vs-this.
Die Ergebnisse zeigen, dass die Deklaration von Methoden über den Prototyp tatsächlich schneller ist. Es ist jedoch umstritten, inwieweit sich dieser Unterschied auf reale Anwendungen auswirkt.
Leistungsengpässe in Apps sind selten auf die Methodeninitialisierung zurückzuführen, es sei denn, es kommt zu übermäßigen Objektinstanziierungen (z. B. 10.000 pro Animationsschritt).
Für leistungskritische Szenarien können Mikrooptimierungstechniken wie die Deklaration von Methoden über den Prototyp in Betracht gezogen werden. Ansonsten hängt die Wahl zwischen den Methoden von den Vorlieben des Entwicklers ab.
Es ist erwähnenswert, dass JavaScript eine Konvention hat, privaten Eigenschaften einen Unterstrich (_process()) voranzustellen. Während Entwickler diese Praxis im Allgemeinen respektieren, ist es möglicherweise nicht praktikabel, sich auf ihre Durchsetzung zu verlassen.
Das obige ist der detaillierte Inhalt vonPrototyp- vs. Konstruktorfunktionen: Welche Methode bietet eine bessere Leistung in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!