When you extend a class, the options are blended together. Any options that
overlap will be overwritten:

var Foo = new Class({
    Implements: Options,
    options: {
       fruits: {
         apple: 'red',
         orange: 'orange'
       },
       favoriteNumber: 10
    },
    initialize: function(options){
        this.setOptions(options);
    }
});

var Bar = new Class({
    options: {
        fruits: {
            apple: 'green',
            lemon: 'yellow'
        },
        favoriteNumber: 12,
        favoriteColor: 'blue'
    },
    initialize: function(opitions){
        this.parent(options); //sets options
        console.log(this.options.fruits.apple); //logs 'green'
        console.log(this.options.favoriteNumber); //logs 12
        console.log(this.options.favoriteColor); //logs 'blue'
    }
});


keif wrote:
> 
> So the extended class options override the original class options.
> 
> I have to pass the class options into the first class, then into the
> second class as well - I have a feeling this isn't by design, so odds are
> I'm doing something wrong when I do this.parent();
> 
> 
> keif wrote:
>> 
>> I'm extending noobslide:
>> http://www.efectorelativo.net/laboratory/noobSlide/
>> 
>> but when I extend the class, it overwrites the original options.
>> 
>> var mooSlideResource = new Class({
>>      Extends: mooSlide,
>> 
>>      options: {
>>              'captionsContainer': null,
>>              'description': false,
>>              'hoverButtons': null,
>>              'hoverActionsFx': {
>>                      'duration': 250,
>>                      'transition': Fx.Transitions.linear
>>              },
>>              'hoverOffset': 25
>>      },
>> 
>>      initialize: function(options){
>>              console.debug('resource slide', options);
>> 
>>              // Include parent options
>>                 this.parent(options);
>>       }
>> 
>> It then overwrites the original options I dump with a
>> console.debug(options);
>> 
>> Anyone have any insight to this?
>> 
>> 
> 
> 


-----
The MooTools Tutorial:  http://www.mootorial.com www.mootorial.com 
CNET Clientside:  http://clientside.cnet.com clientside.cnet.com 
-- 
View this message in context: 
http://n2.nabble.com/Extending-a-class.-tp1095871p1096320.html
Sent from the MooTools Users mailing list archive at Nabble.com.

Reply via email to