是否检查预定的布尔值是对的还是对的?还是将这样的代码优化为2种不同的实现方式(考虑到V8和spidermonkey)?
示例1
let predeterminedBool = Math.random() < .5
callsCalbacksOften(() => {
if (predeterminedBool) console.log("Task A")
else console.log("Task B")
})
示例2
let predeterminedBool = Math.random() < .5
let chosenCallback
if (predeterminedBool) chosenCallback = () => {
console.log("Task A")
}
else chosenCallback = () => {
console.log("Task B")
}
callsCalbacksOften(chosenCallback)
对于大型任务(在代码行方面),示例变得非常庞大。产生基本复制的代码(对此条件执行)。尽管示例2似乎更有效。那么,示例1比示例2慢吗?如果是,请问有多少?还是这只是js语法的感知?
PS:这能很好地翻译成其他可以应用西耶尔概念的语言(例如Java)吗?