本文共 790 字,大约阅读时间需要 2 分钟。
烦透了闭包。目前在修改一个项目,该项目的原始代码中使用了大量的闭包。一个套一个,甚至套了三四层,那函数啊,那局部变量啊,叫一个多啊,那执行流程啊,叫一个乱啊。
下面是个draw函数,730行,把它的结构提取出来,有下面的树:
draw 15变量
function0 1变量 function1 13变量 function11 function12 function13 function14 function141 function142 function15 function151 function1511 function16 function161 function17 function18 function19 function1A function2 function3 8变量 function31 function32 function4 26变量 function41 function42 function43 function44 function45 function46 function47 function48
如果只看draw作用域,那么draw下的15个变量对于从函数function0-function48来说就是外部变量。而对于function41-function48来说,外部变量就有26+15=31个。
这不就是最古老最邪恶的结构化编程的变种吗!
对这个函数来说,大量使用闭包,存在三个问题:
·阅读难——执行流程上串下跳的;
·调试难——调用栈结构层次就像天书一样;
·重构难——外部变量太多。
本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2010/06/04/1751704.html如需转载请自行联系原作者
xiaotie 集异璧实验室(GEBLAB)