关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
3年前关闭。
Improve this question
我对 javascript 的深入研究越多,我就越会考虑某些设计决策和鼓励实践的后果。在这种情况下,我正在观察匿名函数,这个特性不仅是 JavaScript 提供的,而且我看到它被广泛使用。
我想我们都可以同意以下事实:
虽然匿名函数似乎是一个非常好的特性,但它的使用导致了深度嵌套的代码设计。代码写得很快,但读起来很困难。与其被迫为功能发明一个命名上下文,并扁平化你的可调用对象层次结构,它鼓励“深入一层”,插入你的大脑堆栈并迅速溢出 7 +/- 2 规则。 Alan Cooper 的“About Face”中表达了类似的概念,粗略地引用了“人们不了解层次结构”。作为程序员,我们确实了解层次结构,但我们的生物学仍然限制了我们对深层嵌套的理解。
在这一点上,我想听听你的意见。匿名函数是否应该被认为是有害的,一种明显 Shiny 的语法糖,我们后来发现它是盐,甚至是老鼠药?
CW,因为没有正确的答案。
最佳答案
在我看来,您面临的问题不是匿名函数,而是不愿意将功能分解为有用且可重用的单元。这很有趣,因为在具有一流函数(以及必然是匿名函数)的语言中重用功能比在没有一流函数的语言中更容易。
如果您在代码中看到很多深度嵌套的匿名函数,我建议可能有很多通用功能可以分解为命名的高阶函数(即接受或返回(“构建”)其他函数的函数功能)。如果经常使用它们,即使是现有函数的“简单”转换也应该命名。这只是 DRY 原则。
关于javascript - 匿名函数被认为是有害的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960517/