2016-09-08 2 views
3

Ich lese, dass Sie lieber eine feste Struktur eines Objekts haben, nur Eigenschaften ändern, Eigenschaften nicht entfernen/hinzufügen selbst, so dass JavaScript Engine es besser optimiert, wie folgt:Zu einer Eigenschaft in Konstruktor undefined zuweisen

var MyClass = function(){ 
    this.prop = undefined; 
}  
var a = new MyClass(); 

Ich finde dies ziemlich chaotisch und einer der schattigen JavaScript-Hacks, obwohl es verwenden kann, wenn es wirklich den Lauf der App steigert.

Allerdings bin ich etwas skeptisch gegenüber diesem Trick in einer Frontend-Anwendung, auch wenn es ein komplexes ist, bestehend aus 100 Klassen und Komponenten.

Also, die Frage ist, macht es in der Praxis Sinn, Eigenschaften Anfangswerte in Konstruktoren zuweisen? Oder ist es eher eine hypothetische Leistungsoptimierung, die kaum wahrgenommen werden kann?

Antwort

1

Macht es in der Praxis Sinn, den Konstrukteuren Anfangswerte zuzuordnen?

Ja, absolut. Es verbessert die Klarheit, sowohl für den optimierenden Compiler als auch für den menschlichen Leser, was besonders in größeren Codebasen wichtig ist.

Wenn Sie jedoch versuchen, Objekte ohne initialisierte Eigenschaften zu erstellen, könnte dies auf einen allgemeineren Konstruktionsfehler hinweisen. Wenn Sie nicht einmal vernünftige Anfangswerte kennen, sollten Sie vielleicht nichts instanziieren, bis Sie sie kennen.

Verwandte Themen