JavaScript-Funktion mit Objekt als Argument
Mann kennst es ja aus verschiedenen jQuery-Plugins. Argumente werden als Objekt in entsprechender Notation an eine Funktion übergeben und überschreiben dabei Default-Werte. Das ist schick und hat einige Vorteile:
- jedes Argument bekommt einen Namen und ist damit selbsterklärend
- die Reihenfolge ist dabei vollkommen egal genauso wie, das Auslassen von Argumenten
- sieht schick aus und ist einfach zu pflegen
Wie macht man das nun für eigene framework-unabhängige Funktionen. Ungefähr so:
var welcome = function(options) { // default settings var defaults = { 'name' : 'World', 'greeting' : 'Hello' }; // set options var o = {}; if (typeof options !== 'undefined') { o = options; } for (var i in defaults) { if (typeof o[i] === 'undefined') { o[i] = defaults[i]; } } // your function logic var text = o.greeting + ', ' + o.name + '!'; console.log(text); }
welcome({'name': 'Tommy'}); // Hello, Tommy!
welcome({ 'name': 'Tommy', 'greeting': 'Hi' } // Hi, Tommy!
Ich führe hier noch eine zusätzliche Variable o
ein und kopiere das options
-Objekt hinein. Das braucht es normalerweise nicht. Ich finde es nur schick, wenn man sieht, was in der Funktion namentlich übergeben wird (nämlich Optionen options
) und im Nachhinein kürze ich das nur zu o
ab. So muss ich nicht jedes mal options
ausschreiben.
Cactus/Kaktus
Cologne/Köln
Cartwheel
Linkhub #8
- So You Want to Accept Credit Cards Online?
Ein Tutorial wie den Kreditkartendienstleitser (Prozessor) Stripe benutzt. Vom Anlegen eines Kontos bis zum Testing/Debugging. - Parallax scrolling lib with zero dependencies
Eine JavaScript-Parallax-Scrolling-Bibliothek ohne Abhängikeiten. - Asynchronous programming and continuation-passing style in JavaScript
Asynchrones JavaScript mit Callbacks wird hier »continuation-passing style« (CPS) genannt und erklärt, wie es funktioniert. - HTML5, CSS3 and Web Development Resources
Peter Kröners Linksammlung zum Thema Webentwicklung - Understanding Design Patterns in JavaScript
Was sind Design-Patterns in JavaScript und was kann man damit machen. - Preparing Yourself for Modern JavaScript Development
Wie sieht modernes JavaScript aus. Vorstellung einiger »moderner« Konzepte.