请问是否有人能够解释一下,使用命名空间是否是一种良好的编码实践?为什么需要它?如果这是一种好的方法,为什么JQuery不默认包含它?需要一个单独的插件才能实现此功能。
我看到了这篇文章,其中提到了几种方法。文章中有人提到了内存泄漏的问题,这让人担忧。
最后,什么是组织JQuery库的最佳方式?
谢谢!
请问是否有人能够解释一下,使用命名空间是否是一种良好的编码实践?为什么需要它?如果这是一种好的方法,为什么JQuery不默认包含它?需要一个单独的插件才能实现此功能。
我看到了这篇文章,其中提到了几种方法。文章中有人提到了内存泄漏的问题,这让人担忧。
最后,什么是组织JQuery库的最佳方式?
谢谢!
注意:
回复Amir的评论:
YUI通过向YUI对象添加一个变量来实现命名空间,其中添加的变量也是一个对象。他们的命名空间函数只是为您构建它。
var lib = {
util:{},
widget:{},
tool:{}
};
//creates a function named reset in the lib.util namespace
lib.util.reset = function() {};
//creates a function named reset in the lib.widget namespace
lib.widget.reset = function() {};
在jQuery中,你需要将它添加到jQuery.fn
(如果你使用$
作为jQuery()命名空间,则为$.fn
)。
关于最佳的jQuery库组织方式,您应该首先阅读jquery.com上的Plugins Authoring文章:
http://docs.jquery.com/Plugins/Authoring
使用require.js是一种更好的实践方式,因为它不需要您不必要地向window对象添加对象。这也不意味着您必须担心先前的JavaScript文件的加载顺序。
requireJS
定义了require
关键字来加载模块和define
关键字来定义模块。它使用 零 全局作用域。还有其他的模块加载器,你可以自己去找 ;) - Raynos