You can do chainability at object define time with the sugar form:

var obj = {
on type1(){},
on type2(){},
on type3(){}
}

OR add to it using one of the following options:

Object.mixin(obj, {
on type1(){},
on type2(){},
on type3(){}
})

obj.{
on type1(){},
on type2(){},
on type3(){}
}

obj := {
on type1(){},
on type2(){},
on type3(){}
}


On Wed, Jul 10, 2013 at 12:41 PM, Andrea Giammarchi <
andrea.giammar...@gmail.com> wrote:

> my implementation works already with `DOM` nodes and browser environment,
> including `window`.
>
> I've also already written an `EventTarget` mixin object but in my case I'd
> use that via `Object.mixin(Object.prototype, EventTarget);` 'cause almost
> every object I use in my logic should be observed or should emit something
> to some other object.
>
> Of course Dictionaries are out of the game but that's OK, as long as it's
> possible to promote them later on via `Object.setPrototypeOf(dict,
> Object.proottype)`
>
> I find the `Object.addEventListener(obj, "type", handler)` approach very
> boring for the simple reason that it does not make sense to use
> chainability there, another de-facto thing when it comes to events.
>
> ```javascript
> // current eddy.js status
> var obj = {}
>   .on(type1, handler1)
>   .on(type2, handler2)
>   .on(type3, handler3)
> ;
> ```
> This allows multiple operations with the same object, something not
> possible with the `Object.publicStatic` alternative if not repeating same
> thing many times.
>
> The chainability won here in both jQuery and node.js world, together with
> many other libraries.
>
> I know it's hard to even think about polluting the `Object.prototype` but
> indeed FirefoxOS uses events all over the place, node.js is basically 90%
> event driven, so is the DOM, and every observable object is firing
> indirectly events for third parts.
>
> What else do we need to understand that maybe we could simplify this in
> core and make event driven development **way easier** and finally more
> standard?
>
> Even keeping the double firing approach, both `trigger` and `emit` since
> these two do different things (slightly, but still...)
>
> Last wonder, nobody said a word about the `.boundTo(method)` solution for
> a very very common/frequent problem.
>
> Thanks for all other thoughts though, best regards.
>
>
>
>
>
>
> On Wed, Jul 10, 2013 at 11:42 AM, Anne van Kesteren <ann...@annevk.nl>wrote:
>
>> Yeah, so what I meant was how you'd stop the madness if you don't do
>> them in a way that works with DOM (as DOM works today). My bad.
>>
>>
>> --
>> http://annevankesteren.nl/
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>


-- 
- Matthew Robb
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to