Der beste Weg, um eine Funktion in Javascript aufzurufen [geschlossen]

8

Ich schreibe ein kleines Beispiel, um die Funktion getAge() aufzurufen, um das Alter über ein Objekt anzuzeigen.

Ich habe 3 Möglichkeiten, das zu tun:

%Vor% %Vor%

Meine Frage: Was ist der beste Weg? Und warum?

    
Tân Nguyễn 19.01.2016, 07:31
quelle

5 Antworten

4

Ich würde das einfachste Formular empfehlen:

%Vor%

Es erzeugt bereits ein gut definiertes Objekt mit den gewünschten Eigenschaften, es skaliert gut und es wird nicht durch den Code des Verwaltungsstandards für die roten Bänder belastet.

Guter Code hat das schon seit Jahren getan und es ist ein sehr bewährter Stil. Es ist lesbar und kompakt.

Was Sie daraus NICHT erhalten werden, sind die neuen erweiterten Funktionen der ES6-Klassendefinitionen, die in fortgeschritteneren Fällen erforderlich sein könnten.

Warnung! Dies ist nur meine persönliche, voreingenommene Meinung:

  

Ich werde zum einen keine Klassendefinitionen verwenden, stattdessen werde ich diesen Stil und Lambdas nutzen, wie ich es immer in mehr als 10 Jahren getan habe. Ich bin auch gegen die Einführung von syntaktischem Zucker in Javascript, nur um es wie andere Sprachen aussehen zu lassen. Ich bevorzuge das prototypische Paradigma.

    
pid 19.01.2016, 07:50
quelle
5

Es hängt von dem tatsächlichen Problem ab, das Sie lösen müssen und von der Art der Programmierung, die Sie verwenden. Wenn Sie dazu neigen, einen objektorientierten Ansatz zu verwenden und von seinen Funktionen wie der Vererbung profitieren möchten, können Sie eine Person als

modellieren %Vor%

Oder als eine Klasse

%Vor%

Wenn Sie einen funktionaleren Stil bevorzugen, schreiben Sie reine und unabhängige Funktionen, die einige Aktionen für einige Daten ausführen:

%Vor%

Für das Beispiel getAge macht jede Art von statischer Funktion keinen Sinn (Ihr erstes Beispiel), da age die Eigenschaft eines Objekts ist. Sie benötigen also eine Instanz eines Objekts, mit der Sie eine Methode aufrufen oder an eine Funktion übergeben können.

    
hansmaad 19.01.2016 08:05
quelle
3

Ich sage nur, wie ich die drei benutzen würde. Das soll keine absolute Antwort sein, so sehe ich die Dinge. Und ich bin daran interessiert andere Sichtweisen zu sehen.

class

Ich würde dieses Schlüsselwort nur verwenden, wenn ich dieses Objekt mehrfach instanziieren möchte. (Nur verfügbar in ECMAScript 6)

%Vor%

JSON

Ich würde nur einen JSON deklarieren, wenn ich ihn nur einmal instanziieren würde.

%Vor%

function

Sie verwenden es mehr wie ein class Ersatz hier. Mit dem Schlüsselwort new können Sie diese Funktion beliebig oft als Klasse instanziieren. (Was eine Menge Leute tun und das ist ok! Meistens weil das Schlüsselwort class nur in ECMAScript 6 verfügbar ist)

%Vor%     
Elfayer 19.01.2016 08:23
quelle
2

Ich würde so etwas vorschlagen. Ich wäre neugierig, das Feedback anderer zu hören.

%Vor%

Meine Argumentation dafür ist, dass dies ein objektiver Ansatz ist.

  • Der Großbuchstabe lässt Sie wissen, dass diese Funktion mit einem mit dem Schlüsselwort new verwendet werden soll.

  • Ist wiederverwendbar - Sie können mehrere verschiedene Person -Objekte mit unterschiedlichen Altersgruppen haben, ohne die Methoden jedes Mal für jedes einzelne deklarieren zu müssen.

  • Syntax und Verwendung ähnelt objektorientierten Sprachen wie Java, mit denen man vielleicht bereits vertraut ist.

dwjohnston 19.01.2016 07:45
quelle
2

Der letzte Weg, den du geschrieben hast, ist der beste

%Vor%

Aber es gibt eine bessere Leistung, aber wenig komplex beim Schreiben. Es ist wie TypeScript oder Babel kompiliert seine Klassen zu JavaScript.

%Vor%

Verwendung ist die gleiche:

%Vor%

Aber so zu schreiben, ist wenig zeitaufwendig. Daher denke ich, dass es das Beste ist, ES6-Klassen zu verwenden und sie mit TypeScript oder Babel zu kompilieren.

Also, meine Meinung ist der beste Weg, so zu schreiben:

%Vor%     
quelle

Tags und Links