访问数组中的对象,该对象是另一个对象Javascript的属性
Access object in array which is a property of another object - Javascript
我已经很久没有学习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;
}
现在我创建两个对象:
startPage = new page("start");
somePage = new page("foo");
并尝试在startPage
:中将somePage
添加到阵列中
startPage.addToSubPages(somePage);
现在这似乎不起作用,尽管如果我没有错的话,它应该是正确的。
console.log(startPage.getSubPages());
这表明某个在数组中,但对象似乎是空的。我做错了什么?另外:如何访问该数组中的某个元素?像这样:startPage.getSubPages()[0].getFoo();
?
编辑:神圣的Mackerel,蝙蝠侠!这更像我的实际代码:http://jsfiddle.net/pZHKS/2/你没事,我发布的代码确实有效。一旦继承开始发挥作用,它就不再起作用了。为什么呢?它应该和上面的代码完全一样工作,对吧?
function page(title) {
this.title = title;
}
function subPage() {
this.contentPages = [];
}
subPage.prototype = new page;
有两个问题。
- 您没有在
subPage
中调用page
- 您使用
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);
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- AngularJS&JSON-从Previous&下一个对象
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 你能用来自数组的属性名称生成一个对象吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Protractor:element.getText()返回一个对象,而不是String
- 如何使用jQuery添加另一个对象的高度作为边距
- 计算从一个对象到另一个对象的路径并沿其移动
- 如何将一个对象添加到每个对象数组中
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 将javascript对象(属性+值)合并到一个对象中
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 从 javascript 中的对象方法返回一个对象
- 响应应包含一个对象,但得到的却是GET操作的数组
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 用javascript创建另一个对象的实例