/* [de-DE] »Das "Mixin"-Konzept aus JavaScript-Sicht fügt Objekten Verhalten durch Delegation über implementierte Interfaces hinzu, wobei diese speziellen Schnittstellen besser - und auch im Einklang mit dem Sprachkonzept - als "Funktoren" bezeichnet werden sollten. Außerdem beschreibt "Augmenting" den Vorgang bei dieser speziellen Art der Schnittstellenvererbung viel genauer, als es "Mixin" jemals gelingen kann.« [en-US] - peterS. »The concept of "Mixin"s from the perspective of JavaScript adds behavior to objects by delegation over implemented interfaces where those special interfaces should be named "Functors" which also comes closest to this languages design. Furthermore, "Augmenting" describes fare better the mechanism of this special kind of interface inheritance than "Mixin" (does.) will ever do.« [en-US] - Gregory Jacob »The concept of "Mixins" from the perspective of JavaScript adds behavior to objects by delegation over implemented interfaces. However these special interfaces should be named "Functors" which also comes closest to this languages design. Furthermore, "Augmenting" describes this special kind of interface inheritance much better than "Mixin" could.« [en-EN] - Katharina Seliger hier meine Version, ich habe deine leicht agbeändert. »From the JavaSript perspective, the concept of "Mixin"s adds behavior to objects by delegation via implemented interfaces. Though, those special interfaces should rather be named "Functors" since this term relates closer to the language design. Furthermore, "Augmenting" describes more precisely the mechanism of this special kind of inheritance than "Mixin" ever does.« ich finde es etwas missverständlich ob der letzte satz mit dem vorhergehenden etwas zu tun hat. wenn ja dann wäre "ausserdem" etwas unpassend vielelicht. ich verstehe es wie: "es gibt noch eine weitere bezeichnung: augmenting, der den vorgang besser beschreibt als......" so oder so ähnlich. dann müsste man es vielleicht anders formulieren und "ausserdem" anders beschreiben. ich hoffe du verstehst was ich meine. */ (function () { var sh = (window || this); sh.Functor = (function () { // technically exact : [[Functor]] - generally probably most acknowledged: [[Interface]] - colloquially best: [[Augmenter]] instead of [[Mixin]] - [http://en.wikipedia.org/wiki/Mixin] this.augment = (function (/*object:Object|Function[, object:Object|Function[, ...]]*/) { var obj, fct = this; for (var idx=0, len=arguments.length; idx