提问人:Rajat kumar Sahoo 提问时间:7/20/2023 最后编辑:Nick ParsonsRajat kumar Sahoo 更新时间:7/20/2023 访问量:37
我只是试图在对象内运行一个函数,但它返回未定义的输出 [closed]
I am just trying to run a function inside an object but it returns undefined output [closed]
问:
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);
我只是试图通过创建一个对象来使用此方法计算年龄,但是每当我尝试创建年龄对象时,我得到的输出都是不确定的???
答:
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 中,属性 FirstName
、middleName
等被定义为 rajat
对象的一部分,但除非显式调用 calcAge()
方法,否则不会定义 Age
属性。
若要获取确切的年龄,必须首先调用 calcAge()
方法,该方法将设置 Age
属性,然后才能访问它。这是你如何做到的:
现在,通过
调用 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
还要记住,无论如何,加粗整个答案可能会招致反对票;-)
评论
rajat.calcAge()