Читать книгу Angular - Ferdinand Malcher - Страница 58

Die schmerzhafte var-heit

Оглавление

Mit dem Schlüsselwort var eingeleitete Variablen sind jeweils in der Funktion gültig, in der sie auch deklariert wurden – und zwar überall. Variablen mit var »fressen« sich durch alle Blöcke hindurch und sind in der gesamten Funktion und in allen darin verschachtelten Blöcken und Funktionen verfügbar. Das folgende Codebeispiel zeigt zwei Implementierungen, die zum exakt selben Ergebnis führen:

function foobar(foo) {

if (foo) {

var bar = 'angular';

}

// bar = 'angular'

};

function foobar(foo) {

var bar;

if (foo) {

bar = 'angular';

}

// bar = 'angular'

};

Es ist egal, ob wir die Variable innerhalb der if-Verzweigung deklarieren oder außerhalb – sie ist überall gültig. Diese Eigenschaft führt in der Praxis schnell zu Kollisionen von Variablen aus verschiedenen Programmteilen. Um das zu verhindern, wurde häufig auf ein Hilfskonstrukt zurückgegriffen: Der Code wird in eine Funktion gekapselt, die sofort ausgeführt wird, eine sogenannte Immediately-Invoked Function Expression (IIFE). Tatsächlich ist dieser Weg alles andere als schön – war aber lange die »schmerzhafte var-heit« im Alltag der Webentwicklung.

Angular

Подняться наверх