• 如何定义一个自己的可复用的JS文件


    C#中,Java中,我们可以以dll和Jar的形式将我们常用的代码进行封装,然后复用,JS中可以不可以?当然可以,要不然这么多框架。

    C#和Java中,我们可以定义自己的命名空间,类,然后在类中定义自己的方法,在使用的时候,只需要实例化类,然后使用对象即可,JS中没用命名空间和类的概念,JS中有一个非常重要的对象window这个就是全局对象,也可以认为这个是JS中唯一的命名空间,我们可以将自己的对象函数都附加在这个对象上,以供日后使用,这归功于JS对象的动态功能JQuery的源码打开看看,那个著名的$其实就是附加在windows上。既然是动态的,有没有觉得这个对象跟C#中的命名空间类似,在这里我就牵强附会的生拉硬套一个,将这个看做“特殊的对象”,那么我们可以在任何时候去给windows添加,看下面的用法。

    //下面的代码在window对象中创建一个属于自己的对象或者命名空间,并把自执行函数中的方法附加到这个对象上,以便于我们调用这个自执行函数中的一些功能。  
    (function() { 
    //根据id获取对象 
    function   _$(id) { return document.getElementById(id); } 
    
    //创建一个自己的对象相当于C#中的命名空间(javascript中没有命名空间这个说法,刚才已经说了牵强附会)
    window.liuyu = {}; 
    
    //将内部函数_setStyle封装在mySpace命名空间内 
    window.liuyu.$ = _$; 
    })(); 
    
    //测试代码 
    window.onload = function() { 
    var divtest=window.liuyu.$("testdiv");
    } 
    
    
    //如果不使用这种方法,那么,下面的方法也可以实现的。
    
     
    window.liuyu= {}; 
    window.liuyu.$ = function(id) { return document.getElementById(id); } 
    //测试代码 
    window.onload = function() { 
    var divtest=window.liuyu.$("testdiv"); 
    } 
    

    两种做法实现的功能是一样的,都体现了JS对象的动态作用,但是第二方法更加的直观,易于理解。代码完全裸露在外。而第一种方法通过一个匿名函数将其封装,而且是通过闭包的形式,闭包相当于一个类,这种形式保护了自执行函数内的方法、变量、属性等。这样代码更加安全了。

  • 相关阅读:
    循环处理
    XMLHttpRequest 加载进度
    createjs 的 bitmapdata类
    console打印数组object具体内容
    html5 粒子组合成logo 的制作思路及方法
    createjs 更新
    css取消input、select默认样式(手机端)
    js获取url参数 兼容某些带#url
    Adobe Edge Animate CC 不再开发更新!
    《FLASH CC 2015 CANVAS 中文教程》——3、this关键字 入门
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/3037668.html
Copyright © 2020-2023  润新知