Snook has a pretty good explanation: 
http://snook.ca/archives/javascript/javascript_pass/

Best,

Tobie

On Jan 17, 5:54 pm, iporter <[EMAIL PROTECTED]> wrote:
> Ok, I've figured out that I can use this.options={} within the
> initialize function to declare defaults, and then follow this with
> 'Object.extend(this.options, options || {});' to customise these
> defaults
>
> But I still don't understand why I get different behaviour in the
> above example for this.options.value and this.value - can you tell me
> why?
>
> Thanks
>
> On Jan 17, 4:30 pm, iporter <[EMAIL PROTECTED]> wrote:> In the below code, I 
> expect two alerts '1 : 1' and then '1 : 1', but
> > in reality I get '1 : 1' and '2 : 1'.  For some reason, the
> > declaration of the second object of class myClass alters the first
> > object of the same class.  However, it only alters
> > 'this.options.value', and not 'this.value'.  Can you tell me why this
> > behaviour occurs, and how to resolve it?
>
> > Cheers
>
> > ---------------------------------------------------------------------------
> > var myClass = Class.create({
> >         options:{},
> >         value: false,
> >         initialize: function(options) {
> >                 this.options.value = options.value;
> >                 this.value = options.value;
> >         },
> >         myAlert:function() {
> >                 alert(this.options.value + ' : ' + this.value);
> >         }
>
> > });
>
> > var classObj1 = new myClass({value:1});
> > classObj1.myAlert();
> > var classObj2 = new myClass({value:2});
> > classObj1.myAlert();
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to