【问题标题】:Error when trying to work with nested objects with constructor尝试使用构造函数处理嵌套对象时出错
【发布时间】:2025-12-23 20:25:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript object constructor


    【解决方案1】:

    这是因为对象 name 是未定义的,并且它上面也没有属性 data,所以你必须初始化 this.name 和 this.name.data 在添加 CarName 之前:

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

    【讨论】:

      最近更新 更多