Показать сообщение отдельно
  #1 (permalink)  
Старый 06.04.2013, 08:06
Аватар для Дюрі-бачі
Новичок на форуме
Отправить личное сообщение для Дюрі-бачі Посмотреть профиль Найти все сообщения от Дюрі-бачі
 
Регистрация: 06.04.2013
Сообщений: 6

Конструктор для компонента
Необходимо создать DOM-елемент с некоторыми дополнениями. Сейчас использую такую конструкцию:
function Menu(options){
	var  self = document.createElement('div'),
	_items=options.items || [],
	_itemsCount=options.itemsCount || _items.length;
        // другие свойства ...
	function construct(){
		var it = document.createElement('ul');
		it.className = 'Menu';
		for (var i=0;i<_itemsCount;i++){
			var item=document.createElement('li');
			item.innerHTML = '<p class="MenuItemTitle">'+ _items[i]+'</p>';
			// формируем подменю...
			it.appendChild(item);
		}; //item
		self.appendChild(it); 
	}; //construct
	construct();
	return self;
};// Menu

Надо переписать фабричную функцию в конструктор: чтоб вместо self использовалось this, а наследование шло через прототипы.
Помогите пожайлуста:
Menu.prototype = document.createElement('div');   //наследуем от Div
function Menu(options){
	var  self = this,
	_items=options.items || [],
	_itemsCount=options.itemsCount || _items.length;
        // другие свойства ...
	function construct(){
		var it = document.createElement('ul');
					// формируем подменю...
		self.appendChild(it); // ОШИБКА!!! Uncaught TypeError: Illegal invocation
	}; //construct
	construct();
};// Menu

как исправить ошибку?

Последний раз редактировалось Дюрі-бачі, 08.04.2013 в 16:44.
Ответить с цитированием