#Die vielen »Talente« von JavaScript
[TOC]
##Die vielen Talente von JavaScript Rollen-orientierte Programmieransätze wie Traits und Mixins verallgemeinern zu können
###TL;DR / Abriss
#Die vielen »Talente« von JavaScript
[TOC]
##Die vielen Talente von JavaScript Rollen-orientierte Programmieransätze wie Traits und Mixins verallgemeinern zu können
###TL;DR / Abriss
| (function (global, moduleSystemName, namespace) { | |
| "use strict"; | |
| var | |
| moduleSystem, // the "custom named" module system core. |
| (function (Object, Array) { | |
| "use strict"; | |
| var | |
| object_prototype = Object.prototype, | |
| isObject = function is_object (type) { |
| (function () { | |
| var | |
| global = this, | |
| ArrProto = global.Array.prototype, | |
| proto_slice = ArrProto.slice, | |
| proto_map = ArrProto.map, | |
| proto_reduce = ArrProto.reduce, |
| /** | |
| * see also / derived from: | |
| * [https://github.com/petsel/composable/blob/master/src/components/Introspective/Introspective.isFunction-isCallable.js] | |
| * [https://github.com/petsel/composable/blob/master/src/composites/Function/Function.isFunction-isCallable.js] | |
| */ | |
| var Introspective_isFunction_isCallable = (function () { | |
| var | |
| Trait, // the "Introspective_isFunction_isCallable" Trait Module. |
| /** | |
| * see also / derived from: | |
| * [https://github.com/petsel/composable/blob/master/src/components/Observable/Observable.SignalsAndSlots.js] | |
| * [https://github.com/petsel/composable/blob/master/src/composites/Queue/QueueFactory.js] | |
| */ | |
| var Observable_SignalsAndSlots = (function () { | |
| var | |
| global = this, |
| /** | |
| * see also / derived from: | |
| * [https://github.com/petsel/composable/blob/master/src/components/Enumerable/Enumerable.first-last-item.js] | |
| * [https://github.com/petsel/composable/blob/master/src/composites/Array/Array.first-last.js] | |
| */ | |
| var Enumerable_first_last = (function () { | |
| var | |
| Trait, // the "Enumerable_first_last" Trait Module. |
| var Enumerable_first_last = (function () { | |
| var | |
| Trait, | |
| first = function () { | |
| return this[0]; | |
| }, | |
| last = function () { | |
| return this[this.length - 1]; |
| /** | |
| * see also / derived from: | |
| * [https://github.com/petsel/composable/blob/master/src/components/Controllable/Controllable.adviceTypes.afterThrowing-afterFinally.js] | |
| * [https://github.com/petsel/composable/blob/master/src/composites/Function/Function.modifiers.adviceTypes.afterThrowing-afterFinally.js] | |
| */ | |
| (function (Function) { | |
roughly sketched
Function.prototype.before, Function.prototype.after, Function.prototype.around as minimal set of a kind of an AOP base that already supports library / framework agnostic modification of function based control flow by just wrapping additional behaviors / advice handlers around existing methods / functions.Joinpoint, Pointcut, Advice, Aspect; especially from this point of view of what makes them distinct from existing approaches in compiled and/or non dynamic and/or non functional programming languages.