Я пытаюсь использовать функцию JS, которая находится в другом файле JS, и у меня возникает эта ошибка:
ReferenceError: Lanceur is not defined
Lanceur - это мой объект, который определен во втором файле. У меня есть конструктор:
public class Lanceur {
constructor(angleAiguille) {
this.angleAiguille = angleAiguille;
} // And functions .....
У меня в первом файле есть такая строчка: lanceur = new Lanceur(0);
И я называю свои файлы в формате HTML, например, с помощью <script src = "js/canvas.js" type = "text/javascript"></script>.
Вы что-то компилируете? Ваше использование public смущает меня, вы уверены, что имеете в виду не class Lanceur { }?
Спасибо, Шилли и Джеймс. Теперь, как я вызываю свои функции?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам необходимо создать класс, прежде чем вы сможете создать его экземпляр. Вам также не нужно ключевое слово public, поскольку браузеры в настоящее время не поддерживают его (Если вы не компилируете это через Babel или что-то подобное, но это не было очевидно из вашего сообщения).
В ваш первый файл включите код, из которого состоит класс, я добавил метод в качестве примера.
class Lanceur {
constructor(angleAiguille) {
this.angleAiguille = angleAiguille;
}
someMethod() {
console.info('Firing')
}
}
Затем вы можете создать такой экземпляр во втором файле и вызвать его методы.
const instance = new Lanceur;
// Calling a method...
instance.someMethod();
Вы можете узнать больше о конструкторах классов JavaScript здесь.
Вам необходимо загрузить класс, прежде чем создавать из него экземпляр. Итак, если класс находится во втором файле, а новый вызов Lanceur () - в первом, вам нужно поменять местами файлы.