Yeah, my bad. I added it to my second example (the one I tested) but didn't
make a note of it.


Paul Spencer wrote:
> 
> 
> You are missing an Extends in Bar
> 
> var Bar = new Class({
>    Extends: Foo,
>    // ...
> }
> 
> Paul
> 
> On 17-Sep-08, at 9:01 PM, keif wrote:
> 
>>
>>
>> Well, if it did that, it would be working.
>>
>> Unfortunately, when I say:
>> 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(options){
>>        this.parent(options); //sets options
>>        console.log(this.options.fruits.apple); //logs 'green'
>>        console.log(this.options.fruits.orange); //logs null
>>    }
>> });
>>
>>
>>
>> anutron wrote:
>>>
>>> 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?
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://n2.nabble.com/Extending-a-class.-tp1095871p1097025.html
>> Sent from the MooTools Users mailing list archive at Nabble.com.
>>
> 
> 
> 


-----
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.-tp1095871p1099212.html
Sent from the MooTools Users mailing list archive at Nabble.com.

Reply via email to