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

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

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

最佳答案

因为对象 name 是未定义的,而且它上面也没有属性 data,所以你必须初始化 this.name 和 < em>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;};
}

关于javascript - 尝试使用构造函数处理嵌套对象时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47089811/

相关文章:

javascript - 包含在 Javascript 中使用相同函数构造函数创建的所有对象实例的数组

c# - 构造函数可访问性 C# 编译器错误 CS0122 与 CS1729

java - 如果我尝试将数组作为参数传递到不同的公共(public)类中,为什么我的构造函数无法在 Java 中编译?

javascript - 无法加载样式并执行脚本 Express JS

javascript - Blockly,检测连接/移除/拖动/释放 block

javascript - 在环回中将数据保存到现有模型实例中

java - 不能使用方法调用数组?

JavaScript 函数只有 setTimeout 才能工作

javascript - 如何使用 jQuery 正确添加和删除 div 标签?

javascript - ES6 如何检查对象的每个键和值是否为 null 或未定义?