【发布时间】:2021-12-31 14:07:08
【问题描述】:
我有一个看起来像这样的对象:
let john = {
firstName: 'John',
lastName: 'Smith',
fullname: `${this.firstName} ${this.lastName}`,
height: 1.95,
mass: 92,
calcBMI: function () {
this.BMI = this.mass / this.height ** 2;
return this.BMI
}
}
每当我查看fullName 属性时,它只会返回undefined。但是当我在对象中手动输入它时(即fullName: 'John Smith'),我得到了预期的结果:John Smith。
我查看了 MDN 网络文档,但只找到了几句话,说明如果激活了严格模式,this.myProperty 之类的表达式如何返回 undefined,在我的情况下就是这样。但即使它被停用,也会出现同样的问题。
谁能帮帮我?
P.S:我不是专业的编码员,所以可能只是我是个傻瓜。
编辑:我如何调用 fullName 以及对我的对象的另一个疑问
如果您想知道的话,我正在将 fullName 属性记录到控制台。
还有一件事 - 您可能已经注意到对象中的 calcBMI 函数,并且它还使用了 this 关键字。我想知道为什么它在那里工作而不是外面。
【问题讨论】:
-
嗨,你能分享一下你是怎么打电话给
fullName的吗?此外,我鼓励您查看this explanation -
this不是对象john而在 calcBMI 函数内部它是 -
谢谢你告诉我
标签: javascript object this