Показать сообщение отдельно
  #1 (permalink)  
Старый 04.11.2014, 16:02
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Элегантное решение с super при наследовании
function Super( args ){
	this.init( args );
}

Super.prototype = {
	constructor: Super,

	init: function( args ){
		this.name = args.name;
	}
};

Расширяю его -
var Child = ( function( SUPER ){
	function Child( args ){
		SUPER.call( this, args );
		// Child.super.init.call( this, args ); //
		// сделать так, как мне кажется, не совсем правильно
		// так как потомку приходится хранить логику инициализации
		// своего супер объекта.
		// 
		// Вопрос - как наиболее элегантно можно выйти из 
		// сложившейся затруднительной ситуации, на js 5
	}

	Child.prototype = Object.create( SUPER.prototype );
	Child.prototype.constructor = Child;
	Child.super = SUPER.prototype;

	Child.prototype.init = function( args ){
		this.color = args.color;
	};

	return Child
}( Super ) );
Ответить с цитированием