全部。
我目前正在使用JS工作。我的问题与对象和'this'关键字有关。请在下面查看我的代码:
function calcBMI(mass, height) {
return (mass / (height^2))
};
var Mark = {
firstName: 'Mark',
lastName: 'Jones',
height: 1.82,
mass: 81.64,
BMI: calcBMI(this.mass, this.height)
};
var John = {
firstName: 'John',
lastName: 'Rivera',
height: 1.79,
mass: 82.19,
BMI: calcBMI(this.mass, this.height)
};
function displayData() {
console.log('Mark\'s BMI: ' + Mark.BMI + ', ' + 'John\'s BMI: ' + John.BMI);
if (Mark.BMI > John.BMI) {
console.log('Mark\'s BMI is higher.')
} else if (John.BMI > Mark.BMI) {
console.log('John\'s BMI is higher.')
} else {
console.log('John and Mark have equal BMIs.')
}
};
displayData();
任务是使用“ this”关键字来计算两个人的身体质量指数-John和Mark,由“ Mark”和“ John”对象表示。每个对象的BMI属性都通过顶部的“ calcBMI”函数来计算。
我希望每当调用Object.BMI时都将调用该函数。
相反,结果是NaN。具体来说,输出为:
Mark's BMI: NaN, John's BMI: NaN
John and Mark have equal BMIs.
请帮助我了解我哪里出错了。谢谢。
PS-这是我的第一个StackOverflow问题。如果您对我如何更好地提出问题有任何意见,在这里,我将不胜感激。另外,我的代码有时看起来很丑。我很乐意接受一些建议,使它也更清晰易读。