我读到过在JavaScript中使用匿名函数是不好的实践,因为它可能会让调试变得复杂,但我自己并没有看到这种情况。那么,在JavaScript中使用匿名函数真的是不好的实践吗?如果是,为什么?
我听说在JavaScript中使用匿名函数不好,因为它可能会让调试非常困难,但是我自己没有亲身经历过。那么,JavaScript中使用匿名函数是否真的不好呢?如果确实不好,那是为什么?我读到过在JavaScript中使用匿名函数是不好的实践,因为它可能会让调试变得复杂,但我自己并没有看到这种情况。那么,在JavaScript中使用匿名函数真的是不好的实践吗?如果是,为什么?
我听说在JavaScript中使用匿名函数不好,因为它可能会让调试非常困难,但是我自己没有亲身经历过。那么,JavaScript中使用匿名函数是否真的不好呢?如果确实不好,那是为什么?我会稍微违背潮流,并提出匿名函数虽然被广泛使用,但实际上是不好的实践。
1) 匿名函数无法被重复使用。
2) 匿名函数没有名称,因此不能描述它们的功能,也就是说代码不具备自我说明性。
3) 无法在单元测试框架中孤立地对匿名函数进行测试。
4) 我个人认为它们使代码更难以阅读和调试。虽然你的经验可能有所不同。
我确实认为有些情况下匿名函数是最佳选择,但通常为了避免上述缺点,我几乎总是给我的函数命名。
通常来说,匿名函数变得越长,它们受益于具有名称的可能性就越大。
[].forEach(function () {..})
- 这个函数有一个它所绑定的名称。或者,同样地,这个还是“匿名”的吗 - var filter = function () { .. }
?问题在于,“匿名”这个词是一个不太准确的术语。 - user2864740不,匿名函数在整个网络的JavaScript中得到了广泛应用。虽然这可能会使调试变得有些困难,但远远不足以说它们不应该被使用。
例如,JQuery广泛使用匿名函数。
有很多时候你想要使用它们而不是正式声明的函数,比如当你想要限制它们的范围时。
仅仅因为大家都使用它们,并不意味着它们是良好的实践(每个人都记得使用 table 元素进行布局吗?)。但是,它们非常棒,因为它们可以帮助澄清和简化您的代码,减少出错的机会。
但是,匿名函数不应该太复杂,以至于在调试时变得困难。在这种情况下,也许最好创建一个新函数。
var fAnonymous = (function nonAnon(){ });
。这肯定有助于调试。 - palswim这是我的浏览器控制台:
// Bad
poopy = function(){}
// function (){}
groupy = poopy;
// function (){}
// Good
droopy = function loopy(){};
// function loopy(){}
floupy = droopy;
// function loopy(){}
groupy
的函数。你输入它的名称以获取更多信息。如果该函数已被设置为在坏部分中,则您无法知道原始声明是什么。然而,如果您像好部分一样定义函数名称,则始终会保留原始函数名称的跟踪。