On Mon, Jun 20, 2011 at 3:23 PM, Axel Rauschmayer <a...@rauschma.de> wrote:

> What is the use case for sideways calls? Can you point me to an example?

You want to allow the API (a.k.a. public methods) of an object to be
overridden, but you don't want the functionality of any non-overidden
API methods to change. In short, you want to avoid the template
pattern. I gave a synthetic example in the sideways calls thread I
started.


> If you are after data that is private to a given prototype, consider using an 
> IIFE, instead.
>
> There are various interesting ideas in other programming languages when it 
> comes to combining methods while overriding:
> - Cooperative methods: force overriding methods to call them.
> - Before/after/around methods: are invoked before/after/before+after a method 
> that they override:
> http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node285.html
>
> But that would be overkill for ES.next.
>
>> By the way, I like this idea that "super" is available all the time
>> (not just in an initializer) like "this" is always available; however,
>> adding another implicit variable "here" which is dynamic like "this"
>> is disconcerting as "this" has been quite a wild beast in JavaScript
>> to say the least.
>
>
> I framed things in terms of |here|, because that value can be easily 
> produced, as a byproduct of looking for a property. It might also, some day, 
> give us the ability to *set* a property that is not at the beginning of a 
> property chain.

Perhaps useful in combination with __noSuchMethod__. More efficient to
dynamically generate a method on the "here" object once then on all
the "this" inheriting objects one-by-one.

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

Reply via email to