我只是试图在对象内运行一个函数,但它返回未定义的输出 [closed]

I am just trying to run a function inside an object but it returns undefined output [closed]

提问人:Rajat kumar Sahoo 提问时间:7/20/2023 最后编辑:Nick ParsonsRajat kumar Sahoo 更新时间:7/20/2023 访问量:37

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

4个月前关闭。

const rajat = {
  FirstName: "Rajat",
  middleName: "Kumar",
  lastName: "sahoo",
  birthYear: 1998,
  location: "Bhubaneswar",
  job: "Programmer",
  friends: ["Michel", "Jack", "James", "Juile"],

  calcAge: function () {
    this.Age = 2023 - this.birthYear;  // `here if i creat the age object it give undefine output`
    return this.Age;                   // `But when i normally call the function it works properly`
  },
};

console.log(rajat.Age);

我只是试图通过创建一个对象来使用此方法计算年龄,但是每当我尝试创建年龄对象时,我得到的输出都是不确定的???

javascript 对象 这个

评论

1赞 Phil 7/20/2023
你还没打过电话rajat.calcAge()

答:

1赞 Hao Wu 7/20/2023 #1

考虑将 a getter 属性设为:Age

const rajat = {
  FirstName: "Rajat",
  middleName: "Kumar",
  lastName: "sahoo",
  birthYear: 1998,
  location: "Bhubaneswar",
  job: "Programmer",
  friends: ["Michel", "Jack", "James", "Juile"],
  get Age() {
    return 2023 - this.birthYear;
  }
};

console.log(rajat.Age);

0赞 polarshark123 7/20/2023 #2

你没有打电话给拉贾特。Age() 之前打印它。调用一个函数就像说你要使用该函数。

-1赞 ELAVARASAN 7/20/2023 #3

嗨,@RajaT库马尔, 您的代码的问题在于您正在尝试访问 rajat。 Age 属性,无需调用 calcAge() 方法计算和设置年龄。在 JavaScript 中,属性 FirstNamemiddleName 等被定义为 rajat 对象的一部分,但除非显式调用 calcAge() 方法,否则不会定义 Age 属性。

若要获取确切的年龄,必须首先调用 calcAge() 方法,该方法将设置 Age 属性,然后才能访问它。这是你如何做到的:

输入代码 Image

现在,通过调用 calage() 方法正确设置了 age 属性,当您访问 rajat.age 时,您将获得正确的年龄,在本例中为 25

评论

0赞 NotTheDr01ds 7/21/2023
欢迎来到 Stack Overflow,ELAVARASAN!你目前的两个答案似乎都可能全部或部分由 AI(例如 ChatGPT)编写。请注意,这里不允许发布 AI 生成的内容。如果您使用 AI 工具来帮助回答任何答案,我鼓励您删除它。我们希望您能坚持下去,通过发布自己的优质内容,成为我们社区的宝贵一员。谢谢!
0赞 NotTheDr01ds 7/21/2023
读者应该仔细和批判性地审查这个答案,因为人工智能生成的信息通常包含根本性的错误和错误信息。如果您发现质量问题和/或有理由相信此答案是由 AI 生成的,请留下相应的反馈。
0赞 NotTheDr01ds 7/21/2023
还要记住,无论如何,加粗整个答案可能会招致反对票;-)