我试图创建一个对象,该对象将有一个方法来向其添加其他创建的对象。例如,我有一个邻域对象,我想给它添加一个新的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行,尝试使用新的构造函数作为函数。
答案 0 :(得分:5)
您上面实际做的是创建一个Home
实例并将其附加到您的addHome
媒体资源。
相反,你需要这样的东西:
function Neighborhood(name) {
this.name = name;
}
Neighborhood.prototype.addHome = function(name, date) {
this.home = new Home(name, date);
}