Lösung zum Minimieren von Objekteigenschaften?

9

In meiner JavaScript-Anwendung verwende ich mehrere Objekte nur für interne Zwecke (die Benutzer müssen nicht darauf zugreifen). zum Beispiel:

%Vor%

Wenn ich einen Minifier wie Uglify.js verwende, werden die Eigenschaftsnamen (leer, plus, minus) unverändert beibehalten. Gibt es eine Möglichkeit, sie zu minimieren?

Was ich bisher betrachtet habe:

  • Verwenden Sie den erweiterten Google-Closure-Minifier im erweiterten Modus, aber dies führt zu einer Kürzung des Codes
  • ersetzt die Objekteigenschaften durch Variablen (z. B. var imagesBlank="blank.gif"), macht aber den Code weniger lesbar

Gibt es einen besseren Weg?

    
Christophe 21.02.2012, 17:02
quelle

3 Antworten

4

Die Verwendung eines Objekts ermöglicht die Verwendung von Variablen als Eigenschaften. Wenn man es in einen Verschluss einpackt, sind diese Variablen wertvoller.

%Vor%

Um auf die obigen Werte zuzugreifen, müssen die Konstanten innerhalb der Closure verwendet werden .

Wenn Sie den Closure-Compiler von Google verwenden, ist die Verwendung von var image = []; effizienter für die Deklaration des Arrays, da die Eigenschaftswerte von Null nummeriert sind, d. h. 0 , 1 , 2 .

Ansonsten funktioniert var image = {}; auch gut.

    
Wasmoo 11.07.2014 13:29
quelle
0

Wenn Sie Ihren internen Eigenschaften eindeutig vorangestellt sind, können Sie --mangle-props regex pro Ссылка ausprobieren.

Hier ist die Verwendung in meinem gulpfile, die einen Schluck-Uglify-Vorgang erfordert.

%Vor%     
Ken Lin 01.06.2017 21:15
quelle
-3

Nun, in diesem Fall könnten Sie einfach alle Referenzen auf images.blank durch "blank.gif" ersetzen, genauso wie durch plus und minus . Das bedeutet zwar mehr Arbeit, wenn Sie aus irgendeinem Grund entscheiden, alle Ihre Dateinamen zu ändern, aber eine globale Suche und Ersetzung kann nicht behoben werden. Keine Notwendigkeit für das Objekt images überhaupt.

    
Niet the Dark Absol 21.02.2012 17:04
quelle

Tags und Links