Ste*_*ini 19 javascript language-design anonymous-function
我越深入研究javascript,就越会考虑某些设计决策和鼓励实践的后果.在这种情况下,我正在观察匿名函数,这个函数不仅是JavaScript提供的,而且我看到强烈使用.
我想大家都同意以下事实:
虽然匿名函数似乎是一个非常好的功能,但它的使用导致深度嵌套的代码设计.代码编写速度快,但难以阅读.它不是被迫为一个功能发明一个命名的上下文,而是压缩你的可调用对象的层次结构,而是鼓励"深入一层",推动你的大脑堆叠,并迅速溢出7 +/- 2规则.艾伦·库珀(Alan Cooper)的" 关于面子 "(About Face)表达了类似的概念,引用了"人们不了解等级制度".作为程序员,我们确实理解了层次结构,但是我们的生物学仍然限制了我们对深层嵌套的掌握.
我想在这一点上听到你的意见.如果匿名功能被认为是有害的,我们后来发现的一种明显闪亮的语法糖是盐,甚至是鼠毒?
CW因为没有正确答案.
j_r*_*ker 16
在我看来,你面临的问题不是匿名功能,而是不愿意将功能分解为有用和可重用的单元.这很有趣,因为在具有一流功能(并且必然是匿名功能)的语言中重用功能比在没有语言的语言中更容易.
如果你在代码中看到很多深层嵌套的匿名函数,我会建议可能有许多常见的功能可以分解为命名的高阶函数(即带有或返回("构建")其他函数的函数)功能).如果经常使用现有函数的"简单"转换,则应给它们命名.这只是DRY原则.
| 归档时间: |
|
| 查看次数: |
3226 次 |
| 最近记录: |