text.skipToContent text.skipToNavigation
background-image

JavaScript für Java-Entwickler von Zeigermann, Oliver (eBook)

  • Erscheinungsdatum: 21.04.2014
  • Verlag: entwickler.press
eBook (ePUB)
9,99 €
inkl. gesetzl. MwSt.
Sofort per Download lieferbar

Online verfügbar

JavaScript für Java-Entwickler

Das Buch JavaScript für Java-Entwickler führt anhand von vielen Code-Beispielen in die Grundlagen der Programmiersprache JavaScript ein. Zielpublikum sind Java-Entwickler, die sich so einfach und schmerzfrei wie möglich der Sprache JavaScript nähern wollen oder müssen. Deshalb wird alles weggelassen, was man als Java-Entwickler entweder sowieso weiß oder nicht wissen muss. Zudem werden Vergleiche zu bereits bekannten Konzepten aus dem Java-Bereich gezogen. Oliver Zeigermann programmiert seit über 10 Jahren in Java. Mit anfänglichem Widerwillen programmiert er seit 2010 auch JavaScript und ist inzwischen mit den Schwächen der Sprache versöhnt. Nun freut er sich, in einer Sprache programmieren zu können, die auf beinahe jeder Plattform läuft.

Produktinformationen

    Format: ePUB
    Kopierschutz: watermark
    Seitenzahl: 132
    Erscheinungsdatum: 21.04.2014
    Sprache: Deutsch
    ISBN: 9783868026337
    Verlag: entwickler.press
    Größe: 2979 kBytes
Weiterlesen weniger lesen

JavaScript für Java-Entwickler

3 Funktionen

Funktionen sind eines der mächtigsten und komplexesten Sprachkonstrukte von JavaScript. Dabei geht das Konzept von Funktionen weit über das hinaus, was in Java mit Methoden möglich ist.

3.1 Bürger erster Klasse

Eine Funktion definiert ihr in JavaScript mit dem Schlüsselwort function . Dann folgen der Name der Funktion, Klammern für die deklarierten Parameter und ein Block für den Funktionskörper. Das Ganze könnte z. B. so aussehen:
function meineErsteFunktion() {
console.log("Toll!");
}
Dazu der passende Aufruf:
meineErsteFunktion();
// = Toll!
Funktionen können auch anonym sein und haben dann keinen Namen. Ebenso wie bei einer anonymen inneren Klasse in Java ist das nur sinnvoll, wenn ihr sie direkt ausführt oder einer Variablen zuweist. Den Sinn der direkten Ausführung sehen wir weiter hinten in diesem Kapitel, hier erst einmal die Zuweisung an eine Variable:
var meineZweiteFunktion = function () {
console.log("Auch toll!");
};
meineZweiteFunktion();
// = Auch toll!
Vielleicht ist euch das Semikolon am Ende der Zuweisung aufgefallen? Ja, das Ganze ist nun zu einem Statement geworden, und Statements sollen ja laut Tipp aus dem letzten Kapitel mit einem Semikolon beendet werden.

Hinweis: Funktionen sind Objekte und können als solche einer Variablen zugewiesen oder als Parameter übergeben werden.

Hält eine Variable eine Referenz auf eine Funktion, ist die Funktion darüber mit dem () -Operator aufrufbar.

3.2 Sichtbarkeitsbereiche (Scopes)

Wie in Kapitel 2 gesehen, spannen Blöcke in JavaScript im Gegensatz zu Java keine Sichtbarkeitsbereiche auf. Zur kurzen Wiederholung: hier gibt es zwar einen Block, allerdings ist auch nach Beendigung des Blocks die darin definierte Variable a noch sichtbar:
{
var a = 10;
}
// Hoppla!
console.log(a); // = 10
Um Sichtbarkeitsbereiche zu definieren, gibt es in JavaScript ein anderes Konstrukt:
(function(){
var b = 10;
console.log("Noch bin ich da: " + b);
})();

console.log(typeof b);
// = undefined
Was passiert hier? Erst einmal definieren wir eine anonyme Funktion, also eine Funktion ohne Namen. Diese führen wir sofort mit () aus. Das weitere Klammerpaar um die Funktionsdefinition herum ist nur aus syntaktischen Gründen notwendig.

Da Funktionen Sichtbarkeitsbereiche aufspannen, ist die Variable b nach der Ausführung der Funktion nicht mehr sichtbar, und wir haben erreicht, was wir wollten. Dieses Pattern ist auch unter dem Namen IIFE für Immediately-Invoked Function Expression bekannt [10].

Da dieses Pattern in JavaScript häufig verwendet wird und insbesondere Grundlage für Module ist, möchte ich ganz sicher gehen, dass es klar wird, und es noch ein bisschen feiner analysieren. Dazu zerlegen wir das Pattern in seine einzelnen Teile. Zuerst definieren wir die anonyme Funktion:
var anonFunc = function() {
var b = 10;
console.log("Noch bin ich da: " + b);
};
Nun haben wir eine Referenz auf diese Funktion in der Variablen anonFunc . Diese müssen wir nun noch wie oben mit () ausführen und danach sichergehen, dass die lokale Variable nicht mehr sichtbar ist:
anonFunc();

console.log(typeof b);
// = undefined
Der Effekt dieses Codes ist derselbe, allerdings ist die Schreibweise weiter oben die deutlich kürzere und daher die einzige, die ihr in der Praxis nutzen würdet.

Manchmal sieht man das IIFE-Pattern mit einer leicht and

Weiterlesen weniger lesen

Kundenbewertungen