尝试使用构造函数处理嵌套对象时出错

时间:2017-11-03 06:35:54

标签: javascript object constructor

尝试使用构造函数创建嵌套对象时出现以下错误:

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();
}

我到处都看了这个,似乎无法找到答案,我想知道我是否犯了一些愚蠢的错误。 任何帮助都很棒,谢谢:)。

1 个答案:

答案 0 :(得分:1)

这是因为对象名称未定义且其上也没有属性 data ,因此您必须初始化 this.name 和<添加 CarName 之前的em> 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;};
}