什么是重构越来越多的javascript / jquery函数的好方法?

时间:2009-06-09 22:27:19

标签: javascript jquery refactoring object global-variables

我正在开发一个项目,我们在一个mvc风格项目上做了很多自定义javascript,特别是jquery。

唯一的问题是我不断添加越来越多的全局函数/变量,而且它们正在堆积起来。我有一些文件,但我不确定如何将一些东西拆分成单独的文件。

我曾考虑将这些函数和全局变量组合成对象,但javascript中的对象语法对我来说似乎有些尴尬(因为缺少经典类)。虽然如果我有一个很好的例子可以跟随,也许我可以来。

如何处理全局javascript函数和变量开始堆积的项目?

4 个答案:

答案 0 :(得分:11)

将一堆全局变量和函数堆积到一个全局对象中的一种非常简单的方法:

// Awful pile of globally-scoped names
var foo = 1
var bar = 2
function go = function(){
    console.log('Yeehaw!');
}


// Instead, just dump everything into a global-level object
var MyApp = {
    foo: 1,
    bar: 2,
    go: function(){
        console.log('Yeehaw!');
    }
}  

// Now access stuff like this
console.log(MyApp.foo);
console.log(MyApp.bar);
MyApp.go();

对于“简单”的顶级变量和函数,我可以推荐这个。可以对此做出很多改进,但它们可能属于过早优化的范畴;这是很好的第一步。

答案 1 :(得分:2)

YUI影院的Crockford视频是如何设置JavaScript名称空间等的一个很好的例子。

答案 2 :(得分:1)

你可以按照jquery.ui的做法将它们分解......按类别或按行动/控制

例如:

effects.blind.js
effects.bounce.js
放到ui.accordion.js

他们可以分解成他们处理的控件吗?

或者他们做了什么?

只是一些建议......

答案 3 :(得分:1)

如果您正在使用jQuery,那么组织代码的第一种方法是构建jquery插件:

http://docs.jquery.com/Plugins/Authoring

http://www.learningjquery.com/2007/10/a-plugin-development-pattern

正如你提到的mvc,有各种各样的javascript实现,但我不确定它们是非常受欢迎的:jamal,javascript mvc,

http://jamal-mvc.com

http://javascriptmvc.com