On Thu, Apr 3, 2008 at 5:20 PM, Peter Hall <[EMAIL PROTECTED]> wrote:
> If you want mutability, you can define methods as vars in the first place.
>
> class Foo {
>
> // can be modified on a per-instance basis
> public var f : function (a:T):S = function (a:T):S {
> return null;
> }
>
> }
>
A common idiom is to have a default value in the ADT's prototype. (I'm
calling a constructor-with-a-prototype an "ADT" -- ES3, which doesn't
have true "class" classes).
ES3 example:
function Button() { }
Button.prototype = {
ondepress : function(){},
_isDepressed : false
};
var b = new Button;
b.ondepress = buttonDepressed;
- b - just got a new instance property: ondepress.
So when defining an ES4 class, instead of putting a default -
ondepress - in the prototype, a dummy function will be added to the
instance.
I'm not understanding the syntax well enough to post an example.
This will have the result of more function objects being created for a
program that does not use - ondepress - for Button instances. Would
the Button class be better off by having a private EMPTY function? Or
maybe that goes on a larger scale, to the event notification system,
but then that wouldn't work unless the event system's empty Function
instance was immutable.
[snip]
> >
> _______________________________________________
> Es4-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es4-discuss
>
_______________________________________________
Es4-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es4-discuss