Прошло много времени с тех пор, как я изучил ООП, и я новичок в JS, поэтому для более продвинутых пользователей все может показаться странным - извините:)
function page(title) {
this.subPages = [];
this.title = title;
}
page.prototype.addToSubPages = function(subPage) {
this.subPages.push(subPage);
}
page.prototype.getSubPages = function() {
return this.subPages;
}
Теперь я создаю 2 объекта:
startPage = new page("start");
somePage = new page("foo");
... и попробуйте добавить somePage
в массив в startPage
:
startPage.addToSubPages(somePage);
Теперь это, похоже, не работает, хотя должно быть правильно, если я не ошибаюсь.
console.log(startPage.getSubPages());
Это показывает, что что-то находится в массиве, но объект кажется пустым. Что я делаю неправильно?
Также: Как бы я получил доступ к определенному элементу в этом массиве? Как это: startPage.getSubPages()[0].getFoo();
?
Редактировать: Святой Скумбрия, Бэтмен! Это больше похоже на мой фактический код: http://jsfiddle.net/pZHKS/2/
С вами все в порядке, код, который я разместил, на самом деле работает. Как только наследство вступает в игру, оно больше не работает. Но почему? Он должен работать точно так же, как код выше, верно?