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.