Необходимо создать 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
как исправить ошибку?