自从我学习OOP并且我是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();
?
答案 0 :(得分:2)
function page(title) {
this.title = title;
}
function subPage() {
this.contentPages = [];
}
subPage.prototype = new page;
有两个问题。
page
中致电subPage
。Child.prototype = new Parent;
这是错误的,请使用Object.create
而不是所以固定代码就是。
function page(title) {
this.title = title;
}
function subPage(title) {
page.call(this, title);
this.contentPages = [];
}
subPage.prototype = Object.create(page.prototype);