2011-09-01 63 views

回答

8

Simply(AFAIK),防止名称冲突和污染父命名空间。

2

命名空间通常用于避免变量/函数/方法标识符冲突并保持全局名称空间(如果有的话)清除。

6

德米安在他的回答中碰了头一声:命名空间的东西,以避免名称冲突和范围污染。

但他们也可以让你的代码更容易理解。举个例子,如果你有两个功能来显示和隐藏图像,他们可以被称为showhide,并且存在于任何范围内。但你也必须在某处显示和隐藏div,所以showImagehideImage会更好。但是,您可以添加淡入淡出,替换和缩放图像的方法,并且很快就会有很多…Image函数。把所有这些转换成名为Image的名称空间,它们可以简单地为Image.hide,Image.show,Image.zoom等等。代码变得不言自明,当你编写代码时,你不必记得调用…Image,因为你可以说var Image = {show:…, hide:…, …etc}或类似的。从结构上讲,你也可以通过保持相关功能(如你所提到的)来获得更好的代码。

我喜欢使用的比喻是,您的电脑桌面就像全局命名空间。你可以不停地把文件放在桌面上,但它很快就会变得杂乱无章,而且你的所有文件都需要非常复杂的名字才是唯一的。所以相反,你使用文件夹来组织一切。每个人都看到使用文件夹在他们的计算机上组织东西的好处,所以编码时为什么不使用类似的概念呢?

相关问题