为对象提供方法来添加对象

时间:2015-03-19 19:47:48

标签: javascript object

我试图创建一个对象,该对象将有一个方法来向其添加其他创建的对象。例如,我有一个邻域对象,我想给它添加一个新的House的方法。这就是我到目前为止所拥有的:

function Neighborhood(name) {
    this.name = name;
    this.addHome = new Home();
}
function Home(name, dateCreated) {
    this.name = name;
    this.dateCreated = dateCreated;
}
var shadyOaks = new Neighborhood("Shady Oaks");
shadyOaks.addHome("Smith Residence", 2010);

我得到的错误是对象不是函数,因此我猜测错误来自第3行,尝试使用新的构造函数作为函数。

1 个答案:

答案 0 :(得分:5)

您上面实际做的是创建一个Home实例并将其附加到您的addHome媒体资源。

相反,你需要这样的东西:

function Neighborhood(name) {
    this.name = name;
}
Neighborhood.prototype.addHome = function(name, date) {
    this.home = new Home(name, date);
}