Ajaxer

because we know how

JavaScript als funktionale Programmiersprache – Teil 3

| Keine Kommentare

Konfigurationsobjekt als lesbarer Parameter

Cover-klein in JavaScript als funktionale Programmiersprache - Teil 3 - Ajaxer
Ein gebräuchliches Muster ist, einer Funktion nicht eine möglicherweise große Anzahl von Parametern, sondern ein Werte-Objekt zu übergeben.

In einigen Kontexten wird dieses Werte-Objekt auch Konfigurationsobjekt oder Parameter-Bag genannt. In diesem Werte-Objekt befinden sich Parameter als Attribute, die über einen Namen identifiziert werden.

Dies führt zu einem lesbaren Funktionsaufruf bei dem optionale Parameter einfacher weggelassen werden können. Diese optionalen Parameter lassen sich dann in der Funktion mit Defaultwerten initialisieren.


function plusWithArgument(argument) {
	if (typeof argument !== "object") {
		throw("Argument not given");
	}
	argument.operandA = argument.operandA || 0;
	argument.operandB = argument.operandB || 0;
	return argument.operandA + argument.operandB;
}

plusWithArgument({"operandA" : 1, "operandB" : 1}); //2
plusWithArgument({"operandB" : 1}); // 1
try {
	print(plusWithArgument());
} catch(e) {
	console.error(e); // Argument not given
}

Dies ist eine autorisierte Leseprobe aus dem Buch Oliver Ochs – JavaScript für Enterprise-Entwickler: Professionell programmieren im Browser und auf dem Server – dpunkt.verlag GmbH 2012. Weitere Leseproben folgen in Kürze.

Autor: Oliver Ochs

Oliver Ochs ist bei der Management- und IT-Unternehmensberatung Holisticon AG in Hamburg tätig. Er beschäftigte sich in den letzten Jahren mit Content Management Systemen, Webframeworks und Portalen auf Java-Basis. In diesem Umfeld arbeitete er als Entwickler, Architekt und Projektleiter. Er hat darüber hinaus Erfahrungen in Schulungen und Coachings. In letzter Zeit setzte er einen seiner Schwerpunkte auch auf Web- Application-Security, Identity-Management und neue Seiten von JavaScript. Ein anderer persönlicher Schwerpunkt sind agile Methoden und Prozesse

Schreib einen Kommentar

Pflichtfelder sind mit * markiert.