【问题标题】:trying to create an object instance inside of an object constructor [closed]尝试在对象构造函数中创建对象实例 [关闭]
【发布时间】:2021-03-05 17:25:41
【问题描述】:

我正在尝试使用 this.user.Message.parent 访问我的父变量。我是 javascript 新手,不明白为什么会出现“未捕获的类型错误:无法设置未定义的属性‘父’”错误。 我显然做错了什么,并且很想知道如何以其他方式实现我所追求的目标。我知道我可以用原型做一些事情,但我试图通过这个“路径”访问父级:this.user.Message.parent。这是代码:

function User(name_){
    this.name = name_;
    this.message= new Message();
    this.create_new_message = true;
    this.class_prefix = this.name;
}

function Message(){
    this.parent = null;
    this.backround = document.getElementById("test");
    this.text = document.getElementById("test");
}

this_user = new User("this");
partner_user = new User("partner");

this_user.Message.parent = document.getElementById("test");

我希望有人可以帮助我,并提前感谢您的帮助:)

【问题讨论】:

  • 这是一个类型 - this_user.Message.parent 应该是 this_user.message.parent 因为 message `属性是用小写定义的。

标签: javascript object constructor undefined instance


【解决方案1】:

JavaScript 区分大小写。您的 User 函数中的 message 变量是小写的,而您引用它是大写的。

代替:

this_user.Message.parent

这样做:

this_user.message.parent

【讨论】:

  • 我太笨了,谢谢。
【解决方案2】:

function User(name_){
    this.name = name_;
    this.message= new Message();
    this.create_new_message = true;
    this.class_prefix = this.name;
}

function Message(){
    this.parent = null;
    this.backround = document.getElementById("test");
    this.text = document.getElementById("test");
}

this_user = new User("this");
partner_user = new User("partner");

this_user.message.parent = document.getElementById("test"); // Here

在您的班级用户中,您使用小写 m 实例化了 message (this.message)

【讨论】:

  • 谢谢你,我不敢相信我是多么愚蠢。
  • 它会发生,尤其是在开始时。良好的编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 2015-10-08
  • 2014-09-13
相关资源
最近更新 更多