JS中难以使用“ This”关键字的

时间:2018-07-06 17:35:03

标签: javascript this

全部。

我目前正在使用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问题。如果您对我如何更好地提出问题有任何意见,在这里,我将不胜感激。另外,我的代码有时看起来很丑。我很乐意接受一些建议,使它也更清晰易读。

0 个答案:

没有答案