Uncaught Reference Error, Javascript с экземпляром конструктора объекта - PullRequest
0 голосов
/ 08 февраля 2019

Невозможно создать экземпляры конструкторов объектов из моего файла Javascript:

$(document).ready(function() {

function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

persons = ['a']

});

Файл загружается, в консоли Chrome JS нет проблем с вызовом массива лиц, он существует в области действия.

Однако,

var myFather = new Person("John", "Doe", 50, "blue");

дает

Uncaught ReferenceError: Person is not defined

Вставка конструктора Person, а затем экземпляр myFather в консоли Chrome JS работает нормально.Есть что-то, что я не делаю правильно / не понимаю.

1 Ответ

0 голосов
/ 08 февраля 2019

Скорее всего, вы объявляете конструктор Person внутри $(document).ready и используете его снаружи.Конструктор Person будет локальным по отношению к обратному вызову $(document).ready.Объявите конструктор Person за пределами $(document).ready, но используйте его внутри:

function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

var persons = ['a'];

$(document).ready(function() {

  var myFather = new Person("John", "Doe", 50, "blue");
  console.log(myFather);

});
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...