Skip to content

Default parameters

Wenn wir Funktionen erstellen, können wir jeden Parameter mit einem Default-Wert belegen:

function calculateTaxes(income, taxRate = 0.17) {
return income * taxRate;
}

Wenn wir calculateTaxes(10000) nur mit einem Argument aufrufen, das automatisch den ersten Parameter ersetzt, wird die default taxRate verwendet.
Wenn wir calculateTaxes(10000, 0.15) mit zwei Argumenten aufrufen, werden diese Werte verwendet.

Wenn eine Funktion mehrere Parameter erfordert, kann es schwierig sein, sich die Reihenfolge zu merken:

function createUser(firstName, lastName, email, password, location) {
// do stuff here
}
createUser('Pedro', 'Hofer', 'pedro@cat.com', '12345678', 'Traunau');

Eine Möglichkeit ist, der Funktion ein Objekt zu übergeben und dieses innerhalb der Funktion zu dekonstruieren. In dem Fall ist es nicht nötig, die genaue Reihenfolge einzuhalten:

function createUser(user) {
const {firstName, lastName, email, password, location} = user;
// do stuff here
}
createUser({
firstName: 'Pedro',
lastName: 'Hofer',
location: 'Traunau',
email: 'pedro@cat.com',
password: '12345678',
});

Default parameter for destructured parameters

Section titled “Default parameter for destructured parameters”

Wenn wir eine App für die Katzen in der Traunau bauen, können wir für die location einen Default-Wert setzen (das user object können wir weiterhin benutzen):

function createUser(user) {
const { firstName, lastName, email, password, location = 'Traunau' } = user;
// do stuff here
}

Eine andere sehr populäre Methode ist, die Parameter direkt zu destrukturieren. Dafür müssen die Parameter optional sein, d.h., man übergibt ein leeres Objekt. (Bei dieser Variante kann das user object nicht mehr genutzt werden!)

function createUser(user = {}) {
// do stuff here
}

Im nächsten Schritt wird das Objekt destrukturiert, dabei kann der location ein default value zugewiesen werden:

function createUser({
firstName,
lastName,
email,
password,
location = 'Singapure',
}) = {} {
// do stuff here
}