Нужен совет по теме ООП
Добрый день всем кто читает это сообщение, поясню ситуацию - недавно пересматривал уроки по ООП в JS, решил повторить пройденный материал и вот в ходе разбора кода с урока у меня закрались сомнения. Решил переписать код на свой лад и он работает. Тогда у меня возник вопрос - либо я что-то не понимаю либо код на уроке был избыточен. Поправьте меня если я где-то неправ. Вот код - мой сверху, код с уроке закомментирован. Код и тот и другой рабочий - можно скопировать и проверить. Заранее спасибо за ответы.
//------------мой код----------------
function OrderList (orderClass, orderItem) {
this.orderClass = orderClass;
this.items = orderItem;
};
// console.log(orderItem);
OrderList.prototype.render = function(){
var orList = "";
for(var index in this.items){
orList += this.items[index].render()
};
return "<ul>" + orList + "</ul>";
};
function OrderElement (href, title){
this.href = href;
this.title = title;
}
OrderElement.prototype.render = function(){
return "<li><a href='"+ this.href + "'>" + this.title + "</a></li>"
};
var item1 = new OrderElement('/', 'Первая');
var item2 = new OrderElement('/', 'Вторая');
var item3 = new OrderElement('/', 'Третья');
var ordItem = [item1, item2, item3];
var menu = new OrderList('present', ordItem);
document.write(menu.render());
//-----------Код с урока----------------
// function Container() {
// this.id = "";
// this.className = "";
// this.htmlCode = "";
// }
// Container.prototype.render = function() {
// return this.htmlCode;
// };
// function Menu(myId, myClass, myItems) {
// Container.call(this);
// this.id = myId;
// this.className = myClass;
// this.items = myItems;
// }
// Menu.prototype = Object.create(Container.prototype);
// Menu.prototype.constructor = Menu;
// Menu.prototype.render = function() {
// var menuList = "";
// for (var i in this.items) {
// menuList += items[i].render();
// }
// return "<ul>" + menuList + "</ul>";
// }
// function MenuItem(myHref, myTitle) {
// Container.call(this);
// this.className = 'menu_class';
// this.href = myHref;
// this.title = myTitle;
// }
// MenuItem.prototype = Object.create(Container.prototype);
// MenuItem.prototype.constructor = MenuItem;
// MenuItem.prototype.render = function() {
// return "<li class='" + this.className + "'><a href='" + this.href + "'> - " + this.title + " - </a></li>";
// };
// var item1 = new MenuItem('/','Главная');
// var item2 = new MenuItem('/catalog','Каталог');
// var item3 = new MenuItem('/contacts','Контакты');
// var items = [item1, item2, item3];
// var menu = new Menu('my_menu', 'menu_class', items);
// document.write(menu.render());