Undefined — это не конструктор, пытающийся создать новый экземпляр одного класса внутри другого

#javascript

#javascript

Вопрос:

Я продолжаю получать ошибку 'undefined' is not a constructor в следующем коде, и я не уверен, что я делаю неправильно. Могу ли я не использовать самостоятельно вызываемую функцию внутри такого класса? Или я не могу создать новый экземпляр другого класса, подобного этому?

 function ClassOne() {
    this.foo = 'bar';

    (function() {
        var classTwo = new ClassTwo();
    }());
};

function ClassTwo() {
    this.someVar = 'testing';
};

var ClassOne = new ClassOne();
  

Комментарии:

1. var ClassOne = new ClassOne(); Вы не должны называть свой var ClassOne , поскольку ClassOne он уже определен.

Ответ №1:

Проблема в этой строке:

 var ClassOne = new ClassOne();
  

Вы объявляете переменную ClassOne (изначально undefined ), которая скрывает ранее определенную функцию ClassOne . Попробуйте это:

 var classOne = new ClassOne();