给对象方法来添加对象

Giving objects methods to add objects

我正在尝试创建一个对象,该对象将具有向其添加其他已创建对象的方法。例如,我有一个邻里对象,我想为它提供向其添加新房屋的方法。这是我目前拥有的:

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 行,试图将新的构造函数用作函数。

您实际上在上面做的是创建一个 Home 实例并将其附加到您的 addHome 属性.

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

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