ste*_*bot 25 javascript anonymous-function
我在阅读使用javascript中的匿名函数是不好的做法,因为它可以使调试变得痛苦,但我还没有看到这个.JavaScript中的匿名函数是否真的很糟糕,如果是这样,为什么?
kem*_*002 12
不,匿名函数在整个网络上的JavaScript中使用.它可能会使调试变得更加困难,但不足以说它们不应该被使用.
例如,JQuery广泛使用它们.
有很多时候你想在正式声明的函数上使用它们,例如当你想限制它们的范围时.
bhs*_*cer 12
我将在这里反对流程,并说明匿名函数确实是不好的做法,即使它们被广泛使用.
1)匿名函数不能重用.
2)根据定义,匿名函数没有名称,因此不描述它们的作用.也就是说代码不是自我记录.
3)无法使用单元测试框架单独测试匿名函数.
4)我个人认为他们使代码更难以阅读和调试.虽然您的经历可能有所不同
我认为有些情况下匿名函数是最好的选择,作为一般规则,为了避免上述缺点,我几乎总是命名我的函数.
我会说相反,lambdas(别名)使一些表达更加简洁.如果您将多个事件处理程序绑定到多个事件,那么为每个事件处理程序提供一个函数名称会非常繁琐.
它比没有更有帮助和节省时间,即使它使调试变得有点困难但我很少调试,因为函数是匿名的.并且您应该使用JSLint在编码时让您的生活更轻松.
绝对不是,lambda函数遍布整个地方,几乎无处不在.
仅仅因为每个人都使用它们并不能使它们成为良好的实践(每个人都记得使用表格元素进行布局吗?)。但是,它们很棒,因为它们可以帮助澄清和简化代码,减少出错的机会。
但是,匿名函数不应该太复杂以至于调试变得困难。在这种情况下,也许最好创建一个新函数。