我有一个这样构造的 JavaScript 调用:
if (($(this).scrollTop() == 0) && !controlsVisibility) {
triggerControls();
}
else if (currentScroll > (previousScroll + 100) && controlsVisibility) {
triggerControls();
};
WhiletriggerControls()
为 , 做以防万一的类型检查undefined
,并controlsVisibility
用作默认参数来确定它应该做什么。我认为:
我是否犯了一个错误,没有在子句
controlsVisibility
中作为函数 arg传递。if
如果该变量的值在我调用triggerControls()
和函数执行之间发生变化(微秒?) - 我应该:通过使用全局状态来解释可能的变化(就像现在一样)
或者
通过提前传递稳定的参数来干扰更改?
我知道这可能会根据具体情况确定,但我真的很感激一些提示。
如果当前的实现(1)没问题
在执行相同功能时,
if
我可以将两种场景检查合二为一。||
除了变得凌乱并且使代码在很大程度上难以阅读之外,为什么我不应该这样做呢?