创建自己的代码库

        代码库:顾名思义,就是放代码的仓库。在Javascript若大的一个仓库中,我们可以开辟自己的一个小仓库,存放自己编写的代码。那如何开辟自己的小仓库呢,它有什么意义呢?下面谈谈我的理解。


1、创建代码库


         大家编程的时候,应该会遇到这样的问题,比如去空格,向某个元素后面插入一个元素,浏览器的某些兼容等问题;它们出现的频率很高,解决的方法却是相同的(函数相同)。在这种情况下如果我们仍然在写重复的代码,是不是就有些太过机械化了呢。这让我想到了“面向对象的思想”------>把相同的东西抽出来放到单独的类中,用的时候可以通过继承或调用以解决问题,这样实现了代码的复用,提高了编程效率。在这里我们就可以利用代码库,来解决代码上面重复问题。


2、创建命名空间


         在创建自己代码库之前,我们往往会先开辟一块自己的空间,也就是所谓的命名空间;然后再存放那些常用的代码。

        大家都知道,命名空间可以解决命名冲突的问题。在这里之所以先创建它:当然也是有原因的,呵呵下面就听我细细道来:

        我们知道面向对象编程中出现多个同名函数,根据参数个数和返回类型决定实现那个函数,很好的实现了功能的扩展,这就是所谓的重载。然而在JavaScript也可以出现多个同名函数,不同的是它总是执行最后一个,前面的被忽略掉;也就是说Javascript中存在的是虚假的重载,而并非真正意义上的重载。这样就可能会导致应该实现的功能,没有实现的现象。所以我们就引入命名空间,避免函数的重名来解决功能被覆盖的问题。

        因为自己对自己空间的东西了如指掌,空间内命名重复的现象几乎可以杜绝;也不用担心与外面的函数重名,因为他们的命名空间不同。


3、实例:自己的代码库

function(){
window['HXJ']={}//注册命名空间(实质就是给window对象添加属性'HXJ',这个属性时一个对象)
//函数
function func1(){
alert("HelloWorld");        
}
window['HXJ']['func1']=func1;//向命名空间HXJ中注册func1函数(实质就是给HXJ对象添加方法)    
 
//函数
function func2(){
alert('你好');
}    
window['HXJ']['func2']=func2;//向命名空间注册func2
}

涉及到的知识点:

1)window['HXJ']={}

这就是我申请了一个命名空间,其实就是给window对象添加了一个属性:属性名即命名空间名,属性值是一个对象。

也可以写成:window.HXJ=New Object();

2.     window['HXJ']['func1']=func1

就是给HXJ对象添加了一个方法;也可以写成,window.HXJ.func1=function(){};

3.    调用方法执行

HXJ.func1(),  自定义属性和方法与其他的属性和方法一样,window可以省略

4.    命名空间,解决了重名的问题。

5.    整个代码的包含在一个匿名函数内部,在浏览器加载页面时JS代码就会执行,这样就保证了代码加载完毕之后,命名空间创建完毕。


4、知识小结:


注意:

          命名空间名不要太大众化,以免命名空间名相同。

优点:

          通过命名空间创建代码库,降低耦合性:代码更加灵活,复用性更强,问题更加简单。

          这里也体现了面向对象的思想,但可不要忘记Javascript只是基于面向对象呦!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值