JUST A DRAFT!
Closures
Auf Deutsch: Funktionsabschluss
- Objekt (Funktion) mit mehreren Scopes.
- Umfasst nicht nur Funktion, sonder Kopie
des Umfelds.
Beispiel
Wofür das alles?
- Daten und Funktion werden zusammengebracht
- Quasi wie die Instanz einer Klasse mit:
- Einer Funktion
- Einem oder mehreren Attributen
Wofür das alles?
class Foo {
int x;
Foo(int x) {
this.x = x;
}
int add(y) {
return x + y;
}
}
...
Foo add5 = new Foo(5);
int result = add5(2); // 7
...
function makeAdder(x) {
return function(y) {
return x + y;
};
}
const add5 = makeAdder(5);
let result = add5(2); // 7
...Wofür das alles?
- Haufen Ereignisbasierter Code im Web:
- Ereigniseintritt wird Callback gegeben -> Closure!
ES6 Modules
Was bringts?
- Import / Export von Funktionen
- Code schneiden (interne / externe API)
- Code verschlanken (es muss nicht alles geladen werden)
//------ lib.js ------
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
//------ main.js ------
import { square, diag } from 'lib';
console.log(square(11)); // 121
console.log(diag(4, 3)); // 5
JUST A DRAFT!
By chclaus
JUST A DRAFT!
- 783