我应该封装我的JavaScript库吗?

时间:2011-11-16 20:01:38

标签: javascript

我有大约600行javascript执行ajax调用,dom操作,测试处理和其他东西。

我想让它成为其他人可以使用的图书馆。

这样做的步骤是什么?

我的第一个想法是将整个库封装在模块模式中。有人建议早些时候帮助解决www.jshint.com问题。

但我认为这可能是一个好主意。

我应该封装整个库吗?

  • 我应该使用模块模式吗?

2 个答案:

答案 0 :(得分:5)

Information Hiding是一种古老而众所周知的方法,可以使代码更安全,更模块化。它是许多令人敬畏的事情背后的基本原则之一,如Abstract Data TypesObject Oriented Programming


(是的,局部变量和模块模式是在Javascript中隐藏代码的唯一方法)

var MyModule = (function(){
    //variables in the wrapper function are local and
    // can't be seen elsewhere

    var my_var;

    function my_private_implementation_function(){ ... }

    function my_api_function(){
    }

    //return public functions
    return {
       my_api_function: my_api_function
    };
}()); //immediatelly run the module code
      //and set MyModule to the return value

//Now we can use things exported from the module

MyModule.my_api_function();

//but we can't access the prvate stuff

MyModule.my_var; //can't do this

答案 1 :(得分:0)

我认为你封装代码的方式,如何将它暴露给DOM,与它进行交互或任何这些事情完全取决于你想要使用它的方式以及你使用它的上下文会用它。 编码模式都有其独特的用途,因此选择一种模式是因为它为您提供的内容,例如编码方便性或性能或可变曝光。 所以如果你问我,不要使用模式,因为你应该使用模式,但是因为它做了你想要的最好的模式。

除此之外,我建议封装(如果你正在讨论将代码封装在一个闭包中),以免混乱全局对象,从而避免变量冲突,使代码更可靠,因为bug的风险更小。

希望它有助于PM5544 ...