Open Source im professionellen Einsatz
Linux-Magazin 09/2014
414

Klassenbewusst

ECMA-Script 6 bietet erstmals die Möglichkeit, Objekte ähnlich wie in Java mittels einer Klasse zu erzeugen. Listing 4 zeigt die Definition zweier Klassen nach dem neuen Standard. Das Schlüsselwort »class« leitet in Zeile 1 die Klassendefinition für die Klasse »Creature« ein. Es folgt der Klassenname, der Körper ist von geschweiften Klammern umgeben. Er enthält in den Zeilen 2 bis 5 die Konstruktor-Funktion der Klasse. Diese kommt beim Erzeugen eines Objekts, etwa mit »new Creature('Bob', 'friendly')« , zur Ausführung. Die Konstruktor-Funktion weist in den Zeilen 3 und 4 den Attributen »name« und »age« die Werte der gleichnamigen Aufrufparameter aus Zeile 2 zu.

Listing 4

Klassen class-statement.html

01 class Creature {
02  constructor(name, age) {
03   this.name = name;
04   this.age = age;
05  }
06 }
07
08 class Human extends Creature {
09  constructor(name, age, character) {
10   super(name, age);
11   this.character = character;
12  }
13
14  toString() {
15   return `${this.name} (${this.age}) is a ${this.character} human`;
16  }
17 };
18
19 console.log((new Human('Bob', 3, 'friendly')).toString());

Vererbung

Die Definition der Klasse »Human« (Zeilen 8 bis 17) leitet sich mit Hilfe des Schlüsselworts »extends« von der Klasse »Creature« ab. Die Konstruktor-Funktion von »Human« ruft in Zeile 10 mittels »super()« -Funktion die Konstruktor-Funktion der Elternklasse auf. Dadurch erben Instanzen von »Human« die Eigenschaften »name« und »age« .

»Human« enthält zudem die Methode »toString()« . Deren Definition beginnt (Zeile 14) direkt mit ihrem Namen, gefolgt von einer leeren Parameterliste, und schließt mit dem Funktionsblock in geschweiften Klammern. »toString()« erstellt eine Repräsentation des Objekts als Zeichenkette. Dazu nutzt die Methode in Zeile 15 einen String-Literal-Ausdruck.

String-Literals sind ebenfalls neu in ECMA-Script 6. Umschlossen von so genannten Backticks erfolgt in ihnen – ähnlich wie in der Bash – die Parameter-Expansion in der Form »${Variablenname}« . Zum Test wertet Zeile 19 den Ausdruck »(new Human('Bob', 3, 'friendly')).toString()« aus. Das Ergebnis »Bob (3) is a friendly human« schreibt die Methode »log()« auf die Browserkonsole.

Ähnlich wie bei Node.js kann der Entwickler mit ECMA-Script 6 Funktionalität in Module auslagern. Zunächst zeigt Listing 5 ein Modul. Das Schlüsselwort »export« veranlasst das Modul, in Zeile 2 die Variable Pub und in Zeile 3 die Klasse »pubObj« zu exportieren. Die Variable »priv« aus Zeile 1 dagegen bleibt intern. Auf sie kann nur das Modul selbst zugreifen, etwa in Zeile 5.

Listing 5

Modul export-statement.js

01 var priv = 0;
02 export var pub = 3;
03 export class pubObj {
04  constructor(val) {
05   this.inc = val + ++priv;
06  }
07 }

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • ECMA Script 6 angenommen

    ECMA International hat die vorgeschlagene Version ECMA Script 6 jetzt offiziell angenommen.

  • Javascript-Alternativen

    Javascript ist der Stoff, aus dem der Client-Teil vieler interaktiver Webanwendungen gemacht ist, schleppt aber Altlasten mit. Gegen die schreiben die Macher der vier vorgestellten Skriptsprachen an.

  • Angular 2

    Mit Typescript statt Javascript, JiT- und AoT-Kompilation und einem konsequenten Einsatz von Components brühen die Macher das Javascript-Framework Angular in Version 2 neu auf. Das Linux-Magazin probiert einen kräftigen Schluck von dem Gebräu.

  • Mit Vektoren zeichnen

    Bilder im Format Scalable Vector Graphics (SVG) brauchen weniger Speicherplatz und lassen sich ohne Qualitätsverlust skalieren. Selbst Animationen und Programmcode mit Javascript sind möglich, was den Standard fürs Web und den Desktop interessant macht.

  • Neue Webseite für Javascript-Test Sputnik

    Google hat eine Webseite online gebracht, mit der Anwender die Javascript-Testsammlung Sputnik im Browser ausführen können.

comments powered by Disqus

Ausgabe 08/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.