是否可以避免在if中创建对象?

时间:2019-05-05 13:37:28

标签: javascript

我想知道是否将对象创建放在if中,即使if不正确,它也会占用资源吗?

例如,在以下代码中:

if (foo) {
    doSomething({
        option1: aVeryLongCallToGetThisValue(),
        option2: idem()
    });
}

如果foo为false,JS是否会对其进行优化并跳过包含option1和option2的对象的创建(此代码段应该被多次调用)?此外,option1option2取决于上下文(想象一个传递给aVeryLongCallToGetThisValue的变量,所以我不能事先计算一次。

1 个答案:

答案 0 :(得分:0)

  

如果 2. Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Convert(Min_Weight,'System.Decimal'))", string.Empty)); 3. Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Convert(Min_Weight,'System.Decimal'))", "")); 为假,JS将对其进行优化

与其说是优化,还不如说是基本的执行语义。也就是说,条件执行就是foo所做的。如果条件不成立,则if主体中的所有语句均不会执行,并且其效果也不会发生。

在所有编程语言中都是如此。这是一个非常基本的功能。