2016-10-16 2 views
1

Я знаю, что есть много подобных вопросов к этому, и я просмотрел немало, но не нашел ответа.Javascript - Неопределенный объект в объекте

Я создал пользовательский объект под названием destination:

function destination() { 
    var city = ""; 
    var flightNumber = ""; 
    var type = ""; 
} 

Я тогда создал второй пользовательский объект, и один из свойств этого объекта типа destination:

function plane() { 
    var flightNumber = ""; 
    var otherCity = new destination(); 
    var status = ""; 
    var taxiRoute = []; 
    var airRoute = ""; 
    var heading = 0; 
    var speed = 0; 
    var left = 0; 
    var top = 0; 
    var height = 0; 
    var width = 0; 
    var dx = 0; 
    var dy = 0; 
} 

Однако , когда я пытаюсь получить доступ к любым свойствам типа destination, используя что-то вроде:

aPlanes[0].otherCity.city; 

где aPlanes представляет собой массив объектов plane(), я получаю сообщение об ошибке неопределенного в консоли браузера:

Uncaught TypeError: Cannot read property 'city' of undefined

ли кто-нибудь может указать, где я неправильно? Это сводит меня с ума!

Заранее спасибо.

ответ

3

У вас есть неправильный class definition. Вам нужно this, а не локальные переменные с объявлением var.

function Destination() { 
    this.city = ""; 
    this.flightNumber = ""; 
    this.type = ""; 
} 

BTW, я предлагаю использовать стандарт для деклараций классов с первой буквой верхнего регистра.

+0

Большое вам спасибо, такой простой ответ. –

Смежные вопросы