Ihr Problem ist, wie Sie wissen, dass ein const
in derselben Anweisung initialisiert werden muss, in der es deklariert wurde.
Dies bedeutet nicht, dass der Wert, den Sie Ihrer Konstante zuweisen, ein Literalwert sein muss. Es könnte jede gültige Aussage wirklich - ternär sein:
%Vor%Oder vielleicht nur dem Wert einer Variablen zuweisen?
%Vor%Sie könnten es natürlich auch dem Rückgabewert einer Funktion zuweisen:
%Vor%Es gibt also viele Möglichkeiten, den Wert dynamisch zu gestalten. Sie müssen nur sicherstellen, dass er nur an einer Stelle zugewiesen ist.
Wenn der ternäre Operator keine Option für seine Unlesbarkeit ist, ist die einzige andere Option IIFE, die umständlich ist, aber fließend gelesen werden kann:
%Vor% Die Semantik von const
ist, dass sie einmal vergeben wird. Es sollte let
für diesen Anwendungsfall sein:
Aus meiner persönlichen Erfahrung sind ~ 95% der Variablen const
. Wenn eine Variable let
sein muss, lass sie einfach selbst sein; die Wahrscheinlichkeit von Fehlern, die durch zufällige Neuzuweisungen verursacht werden, ist vernachlässigbar.
Angenommen, dass const
in beiden Instanzen deklariert wird, könnten Sie eine ternäre Zuweisung verwenden:
Ich schlage diese Lösung mit einer Singleton-Muster Implementierung vor:
%Vor%Tags und Links javascript ecmascript-6 constants