trenc am 20. September 2012
Linkhub |
![Barley/Gerste. Tommy Schmucker 12/08/2012. [CC BY-SA 3.0]](https://www.yablo.de/images/84t.jpg)
trenc am 9. September 2012
Fotos |
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. Tommy Schmucker 12/08/2012. [CC BY-SA 3.0]](https://www.yablo.de/images/83t.jpg)
trenc am 16. August 2012
Fotos |
![Cologne/Köln. Tommy Schmucker 08/08/2012. [CC BY-SA 3.0]](https://www.yablo.de/images/82t.jpg)
trenc am 10. August 2012
Fotos |
![Cartwheel. Tommy Schmucker 04/08/2012. [CC BY-SA 3.0]](https://www.yablo.de/images/81t.jpg)
trenc am 5. August 2012
Fotos |