我的JavaScript出了什么问题(不是函数)

时间:2017-12-07 13:51:07

标签: javascript

所以我试图做一个非常简单的逻辑 - 但我的javascript决定疯了,我不知道为什么会发生这种情况......它只是没有任何意义..

所以我把这个对象称为Room,由于某种原因它不接受新函数..

function Room(name) {
    this.name = name;
    this.peopleInside = 0;

    this.worksFine = function() {
        return "there are " + this.peopleInside + " people inside " + this.name;
    }

    this.worksNotAtAll = function() {
        return "there are " + this.peopleInside + " people inside " + this.name;
    }
}

正如您所看到的,两种方法完全相同,只是名称不同。然后我在另一个(main.js)文件中调用这两个函数:

var house = [];

createHouses();
showDebugInfo();

function createHouses() {
    house.push(new House("simple house"));
    house[0].createFlat("vacant flat"); // array of Flat-Objects
    house[0].flat[0].createRoom("empty room"); // array of Room-Objects
}

function showDebugInfo() {
    alert(house[0].flat[0].room[0].worksFine());
    alert(house[0].flat[0].room[0].worksNotAtAll());
}

第一个功能正常但第二个功能(应该是相同的)根本不起作用。无论我做什么,我都无法在这个类中添加新功能 - 我完全无能为力,这从未发生过之前..

我真的很享受自己,但现在我卡在这里......每当我尝试为这个文件添加任何类型的新功能时,我甚至不能再改变这个怪异的函数名,我总是得到这个错误:< / p>

Uncaught TypeError: house[0].flat[0].room[0].worksNotAtAll is not a function

有什么建议我可以寻找吗?这真让我感到困惑..

编辑: 人们一直在询问我在这里创建房间的文件(房子看起来几乎和btw一样):

function Flat(name) {
    this.name = name;
    this.peopleInside = 0;
    this.room = [];

    this.createRoom = function(roomName) {
        this.room.push(new Flat(roomName)); // this was incorrect! it should be this.room.push(new Room(roomName));
    }

    this.getPeopleCountInFlat = function() {
        return "there are " + this.peopleInside + " people inside " + this.name;
    }   
}

哦天哪,我现在看到了这个错误..我正在制作一个新的Flat而不是一个新房间:/哇,谢谢那个提示家伙!

0 个答案:

没有答案