Я получаю следующую ошибку при попытке создать вложенный объект с помощью конструктора:
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();
}
Я искал это повсюду и не могу найти ответа, и мне интересно, если я сделаю какую-то глупую ошибку. Любая помощь фантастическая, спасибо :)
Это потому, что имя объекта не определено, и на нем нет данных о свойствах, поэтому перед добавлением 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;};
}