我正在更新一些由另一个开发人员创建的代码,我注意到有很多,我可以最好地描述为,函数中的函数,整个对象被设置为一个变量。
例如:
var spellcheck = {
checkone: function() {
<....>
spellcheck.jspspellcheck.startSpellCheck( "/SpellChecker/", $(e.target).parent().prev('input:enabled, textarea:enabled') );
},
jspspellcheck: {
<....>
startSpellCheck: function(baseUrl,elements){
<....>
spellcheck.jspspellcheck.openCenteredWindow( );
}
}
}
显然,上面的代码只是一个示例,但它确实说明了jQuery是如何编写的。
从点符号来看,它看起来像是在使用OO类型的实践,但是在其他函数中有"函数"会变得相当混乱(至少对我来说)。基本上,我是否应该尝试将这些代码重构为不同的命名函数,或者我是否错过了一些最佳实践?
那不是真正的"重构",而是"移动"。并不是说重组一些代码不好——只是没有办法从发布的代码中判断出来。
但是你为什么想要呢?它们在那里是为了使它们远离全局命名空间(模块化JS代码的一种方式)。