Сообщение от protoquest
|
мы можем наследовать функциональность, и расширять ее, не трогая базовый код, и в то же время, можем изменить базовый код, и изменения будут распространяться на все дочерние объекты
|
эрм.. ну ты/вы загнул/выразился... =) хоть на цитаты разбирай ))
еще бы понять - как=) до этого, работал, в основном, без ООП, да и опыта не так много, так что, для меня, пока что, подобная модель - темный лес... вот и задаю, порой, глупые вопросы), до решения которых, самому понимания не хватило
поэкспериментировал, да, интересный вариант,
спасибо за науку!
request={
special: {
SPECIAL_ONE: function(){alert(1)},
SPECIAL_TWO: function(){alert(2)}
},
casual: {
ONE: function(){alert(2)},
TWO: function(){alert(4)}
},
errors: {
ERR_one: function(){alert(100)}
},
handler: function(key){
if(key in this.casual) return this.casual[key]();
if(key in this.special) return this.special[key]();
if(key in this.errors) return this.errors[key]();
throw new Error("WTF?");
}
};
request.handler('SPECIAL_ONE');
request.handler('SPECIAL_the');