2013-04-29 5 views
8

Gibt es eine Möglichkeit, wie Operator function alias ohne zu viel Aufwand wie eval? Ich möchteKann Funktionsoperator Alias ​​sein?

fn test() { ... } 

statt

function test() { ... } 

schreiben einige Bytes in minified Code zu entfernen. Nur neugierig.

+1

Nein. 'Funktion' muss buchstabiert werden. –

+11

Warum? Es wird schon gezippt, oder? Also wird es sowieso auf nichts reduziert. Verlust der Optimierung. –

+2

@DaveNewton: Könntest du nicht dasselbe über unminifiziertes Javascript sagen? –

Antwort

5

Gibt es eine Möglichkeit, den Funktionsoperator ohne großen Aufwand alias zu betreiben?

Nein.

Es sei denn natürlich Sie verwenden ECMAScript 6, wird angeblich enthalten, was "fat arrow" syntax genannt:

var test = (arg1, arg2) => arg1 + arg2; 

Bis dahin sind Sie ständig stecken erklärt:

var test = function (arg1, arg2) { return arg1 + arg2 }; 

oder

function test(arg1, arg2) { 
    return arg1 + arg2; 
} 
+1

Verfügbar heute, wenn Sie TypeScript verwenden :) –

+4

@MortenMertner: Aber das kompiliert in JavaScript, und jetzt sind wir wieder da, wo wir angefangen haben. –

+1

@RocketHazmat Ja, natürlich. Hilft dem Poster momentan nicht, würde ihm aber erlauben, seinen Code jetzt so zu schreiben, dass er in Zukunft weniger Platz einnimmt (sobald es möglich wird, ES6 direkt anzusprechen). –

2

Wie Dave darauf hingewiesen hat, ist es am besten, das richtige Skript zu schreiben und gzip machen zu lassen seine Arbeit.

Aber, wenn Sie keine Angst vor eval() haben und von Ihren Peers herabgesehen werden, aber Sie könnten einen Präprozessor erstellen, um die Sprache ein bisschen anzupassen - eine Funktion davon kann => Deklarationen ermöglichen.

In einiger externen Datei oder versteckten Tag, das Pre-Processing benötigt:

f=(x,y)=>{return x+y;} 

In der Vorverarbeitungsbefehl irgendwo:

var s = loadCodeToPreprocess(whatever); 
s = s.replace(/(\([^()]*\))=>/g, "function$1"); 
eval(s); 

Aber noch einmal, es ist in der Regel am besten, nur JavaScript schreiben nach dem Standard und lass Gzip seine Arbeit machen.