• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

不好的做法是使用一个函数来改变条件内的东西,使条件依赖于顺序吗?

JavaScript 来源:Duh-Wayne-101 5次浏览
var a = 1; 
function myFunction() { 
    ++a; 
    return true; 
} 

// Alert pops up. 
if (myFunction() && a === 2) { 
    alert("Hello, world!") 
} 

// Alert does not pop up. 
if (a === 3 && myFunction()) { 
    alert("Hello, universe!") 
} 

https://jsfiddle.net/3oda22e4/6/不好的做法是使用一个函数来改变条件内的东西,使条件依赖于顺序吗?

myFunction递增一个变量,返回的东西。如果我在if语句中使用这样的函数,该语句包含它递增的变量,则条件将与顺序有关。

这样做是好还是不好的做法,为什么?


===========解决方案如下:

无论您是否更改条件中使用的变量,条件都与订单有关。您用作示例的两个if语句是不同的,不管您是否使用myFunction()都会有所不同。它们等同于:

if (myFunction()) { 
    if (a === 2) { 
    alert("Hello, world!") 
    } 
} 

// Alert does not pop up. 
if (a === 3) { 
    if (myFunction()) { 
    alert("Hello, universe!") 
    } 
} 

在我看来,在代码中坏的做法是不是你改变条件的操作数的条件内在价值的事实,但事实证明,您的应用程序状态暴露和处理内函数甚至不接受这个状态改变变量作为参数。我们通常尝试将函数与代码范围之外的代码隔离开来,并使用它们的返回值来影响代码的其余部分。全局变量占用时间的90%是一个糟糕的想法,随着代码库越来越大,它们倾向于创建难以追踪,调试和解决的问题。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)