Ошибка при попытке работы с вложенными объектами с помощью конструктора

1

Я получаю следующую ошибку при попытке создать вложенный объект с помощью конструктора:

Uncaught TypeError: Cannot read property 'data' of undefined

Вот мой код:

function Car(name){
    this.name.data.CarName = name;
    this.show = function(){document.getElementById("fill").innerHTML = toyota.name.data.CarName;};
}
var toyota;
function functionadd(){
    toyota = new Car("Toyota");
    toyota.show();
}

Я искал это повсюду и не могу найти ответа, и мне интересно, если я сделаю какую-то глупую ошибку. Любая помощь фантастическая, спасибо :)

Теги:
object
constructor

1 ответ

1
Лучший ответ

Это потому, что имя объекта не определено, и на нем нет данных о свойствах, поэтому перед добавлением CarName вам необходимо инициализировать this.name и this.name.data:

function Car(name){
    this.name = {};
    this.name.data = {};
    this.name.data.CarName = name;
    this.show = function(){document.getElementById("fill").innerHTML = toyota.name.data.CarName;};
}

Это короче с объектом литтерал:

function Car(name){
    this.name = { data: { CarName: name } };
    this.show = function(){document.getElementById("fill").innerHTML = toyota.name.data.CarName;};
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню