今天在看学习文档时候,看到这个词,虽然不是第一次看到这个词,但是我感觉好陌生,作为一个程序员,得知道这么常见的名词是什么意思, baidu,google找了一些文档将的都好抽象,看完了也还是不懂到底什么是命名空间,我想想要理解这个抽象的名词,还是得要找一些例子来帮助我理解
1.命名空间是什么?
生活场景举例:
有两家人 一家姓王,一家姓李,两家都楼上楼下。 两家各有三个儿子。 碰巧两家都有个娃是10月1日出生的,所以都叫国庆。一天 王国庆 和李国庆在楼下玩。 这时人在楼上叫:国庆,你家的
电话响了。这下两个国庆就纳闷了,到底是叫那个国庆呢? 这个例子我们往前退一步。 这时如果有人叫 李国庆。那么 两人就知道是谁家的电话响了。
好了这就是命名空间的简单例子 。国庆这个词就是一个变量,很简洁,有一定的意义(国庆出生)。 但是在自己家叫国庆还可以知道是谁。除了家门别人一叫就乱套了。因为别人家也可能有叫国庆的。 但是加上 命名空间就可以区别了。 这里的王和李 就是命名空间 。 王-国庆,李-国庆 这两个就区别开了。
2. 为什么要有命名空间namespace(某些语言中叫package)?
是为了解决命名冲突的问题。
比如: 在大型项目或者多人团队进行开发,对于类似的功能,在封装函数的时候难免会出现函数名相同的时候,那样就悲剧了,轻则前面的函数被覆盖,重则报各种错........js中引入命名空间就是为了解决这个问题。
3. 命名空间怎么解决命名冲突问题?
命名空间,我们先顾名思义一下,也就是这个函数名字只属于这个空间。相当于在函数名前面加了个前缀,用于标识该名字的所属空间。
命名空间,我们先顾名思义一下,也就是这个函数名字只属于这个空间。相当于在函数名前面加了个前缀,用于标识该名字的所属空间。