Показать сообщение отдельно
  #25 (permalink)  
Старый 04.04.2016, 00:49
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

Сообщение от 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');

Последний раз редактировалось Cache, 04.04.2016 в 00:57.
Ответить с цитированием