我应该封装我的javascript库吗?
Should I encapsulate my javascript library?
我有大约600行javascript来执行ajax调用、dom操作、测试处理和其他事情。
我想让它成为一个其他人可以使用的库。
做这件事的步骤是什么?
我的第一个想法是将整个库封装在模块模式中。有人建议这样做,以帮助解决www.jshint.com问题。但我认为总的来说这可能是个好主意。
我应该封装整个库吗?
- 应该使用模块模式吗?
信息隐藏是一种使代码更安全、更模块化的老方法。它是许多很棒的东西背后的基本原则之一,比如抽象数据类型和面向对象编程
(是的,局部变量和模块模式是在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
我认为您封装代码的方式,您将如何将其暴露给DOM,如何与之交互或任何这些事情完全取决于您想要使用它的方式以及您将使用它的上下文。编码模式都有自己独特的用途,所以选择一种模式要看它能为你提供什么,比如在编码的便利性、性能或可变暴露方面。所以,如果你问我,不要因为你应该使用模式而使用模式,而是因为它能做你想让它做得最好的事情。
除此之外,我建议封装(如果你正在谈论在闭包中包装你的代码)不要使全局对象混乱,从而避免变量冲突,使你的代码更可靠,因为有更少的bug风险。
相关文章:
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 有可能让两个变量指向同一个对象吗?(javascript)
- 如何从标记库调用javascript函数's
- 我需要用Javascript重写我的客户端库吗
- 您能为流程图的最小映射组件推荐库吗
- 无需外部库的JavaScript自动完成
- Sharepoint文档库-使用javascript从文件名到标题
- 如何将用户输入放入数组中?对于语句可以进入 if/else 语句吗?(Javascript)
- 预加载库图像.JavaScript(没有JQuery)
- 您可以单独使用条件三元运算符吗?(JavaScript)
- 这是 .indexOf 的正确实现吗?Javascript
- 如何定义一个可以链接到其他Javascript库的Javascript函数
- 你能推荐一个没有HTML或atob依赖的JavaScript JPEG库吗?
- 我们可以在普通的互联网网站上使用phonegap javascript库吗
- 我们可以在JavaScript中使用libemu库吗
- 有JavaScript的代码契约库吗?
- 我应该封装我的javascript库吗?
- Javascript - “lunr”会成为Firebase的可行搜索库吗?
- 有javascript的统计库吗?
- 有什么好的Javascript图形库吗