Organizing my JavaScript function library
随着时间的推移,我创建了一系列不同的javascript函数。它们中的大多数都是静态函数,可以执行诸如修改日期显示、从数组中创建选择菜单HTML等操作。
我目前把它们都放在一个名为"general.js"的文件中,这个文件又被我的HTML页面直接调用,每个文件看起来都像:
1 2 | function modifyDate(data){....} function makeArray(arr){....} |
然后我把它们用作:
1 | alert(modifyDate("12/14/2013")); |
我认为这是个坏主意,因为它可能会与其他图书馆发生冲突。相反,我在考虑如下问题:
1 2 3 | myLibrary={}; myLibrary.modifyDate= function(data){....} myLibrary.makeArray= function(arr){....} |
他们将其用作:
1 | alert(myLibrary.modifyDate("12/14/2013")); |
请注意,我是一种弥补这一点,因为我去。请提供如何最好地组织我的javascript库的建议。谢谢你
您所描述的内容称为名称间距,通常被认为是一个好主意。
关于名称空间的更多讨论可以在这个问题中找到:他们为什么在JavaScript中使用名称空间?
一般来说,名称间距的好处是:
因此,您的示例将提供第一个好处,但不一定是第二个好处,如果这只是一组抓取包功能。不管这是好事还是坏事,都完全取决于你的个人项目和你想做什么。
请注意,如果要成为名称空间,您可能需要研究模块模式,这是一种保护命名空间范围以允许私有变量/受保护状态的方法。对于类似的问题,在这个答案中有一个很好的例子,或者您可以在模块模式中查看这个规范化的博客文章。
在您的例子中,模块模式如下所示:
1 2 3 4 5 6 7 | var myLibrary=(function(){ var privateVariable; //accessible by your functions but not in the global context return { modifyDate: function(data){....}, myLibrarymakeArray: function(arr){....} }; }()) |