【发布时间】:2024-04-14 16:05:01
【问题描述】:
对不起,如果我的英语打扰了您,但我刚刚意识到您在使用条件时不需要将 ( ) 与函数一起使用 - 至少在使用三元运算符时是这样。
这是我的代码:
let mark = {
fullName: 'Mark Wough',
mass: 100,
height: 1.8,
calcBMI: function()
return this.mass / (this.height * this.height;)
}
};
let john = {
fullName: 'John Smith',
mass: 90,
height: 1.5,
calcBMI: function()
return this.mass / (this.height * this.height;)
}
};
console.log(mark.calcBMI(, john.calcBMI());)
mark.calcBMI>john.calcBMI? console.log('Mark has higher BMI'): console.log('John has higher BMI');)
请注意,我正在使用 mark.calcBMI 而不是 mark.calcBMI() 并且两者似乎都在工作!
任何人都可以解释一下这是否正是它的方式,或者我错过了什么,如果在使用条件时不需要在函数中使用 ( ) 是正确的,这是不使用它们的好习惯吗只是因为它是可选的,还是我应该使用它们来更安全?
【问题讨论】:
-
mark.calcBMI和mark.calcBMI()是两个非常不同的东西(无论是否有条件) - 第一个是对函数的引用,第二个是调用函数 -
@UnholySheep - 谢谢,但我相信你必须先调用一个函数,然后评估条件是否为真!例如,如果我没有调用该函数,那么我将如何将它与某些东西进行比较? (对不起,我是 JS 新手)
-
更改您的代码以使 mark 具有更高的 BMI - 您会发现它没有按预期工作。
-
JavaScript 在后台执行某些隐式转换,有关更多信息,请参阅此答案的最后一部分:*.com/a/10339568/2878796
-
@NickParsons - 哦,是的,你是对的,我的原始代码没有记录到控制台标记即使它是具有更高的 BMI 但如果我将 ( ) 添加到函数中,它确实如此。 IDK,为什么它没有给我在函数名称后不添加()的错误
标签: javascript function conditional-statements conditional-operator