• 扩展jquery中的工具类方法


    在这里我利用之前封装好的extend方法来扩展jquery中的工具类的一些方法,比如isNumberic、isArray、type等方法。下面写的代码都会在(function(window){ //代码  })(window)中

    在这里我创建一个对象(class2type)用于存储表示数据类型的字符串的小写格式。

    1 var class2type = {};
    2 //将下面的字符串按空格分离成字符串数组
    3 var strs = "String Boolean Number Function Math Date Array RegExp Objext Undefined Null".split(" ");
    4 //遍历字符串数组,将数组中每一项转化成小写格式存到对象中
    5 //对象的键-值(object str-str.toLowercase)
    6 for(var i=0;i<strs.length;i++){
    7     var str = str[i];
    8     class2type["[object "+str+"]"]=str.toLowerCase();
    9 }

    我再保存对象的toString方法,易于后面扩展方法的时候的调用:

    var toString = Object.prototype.toString;

    然后就可以利用extend方法来扩展jquery中的工具类的方法了:

     1 itMei.extend({
     2     //判断参数是否是一个数字方法
     3     isNumberic:function(num){
     4           return typeof num ==="number" && !isNaN(num);
     5     },
     6     //判断参数是不是一个数组的方法
     7     isArray:function(array){
     8           return Array.isArray(array):itMei.type(array)==="array";
     9     },
    10     //检测内置对象的数据类型的方法,该方法返回的数据类型名称的小写格式
    11     type:function(arg){
    12           var typeName;
    13           var temp = toString.call(arg);
    14           return class2type[temp];    //用到上面定义好的class2type对象
    15     },
    16     //判断一个对象是否是空对象的方法
    17     isEmptyObject:function(obj){
    18           for(var k in obj){   //如果能进行遍历,不是空对象
    19              return false;
    20           }
    21           return true;
    22     },
    23     //抛出异常的方法
    24     error:function(msg){
    25           throw msg;
    26     },
    27     //合并数组的方法
    28     merge:function(source,target){
    29         //将source数组中的元素添加到目标数组target中
    30         var j=0;
    31         var i = target.length;
    32         while(source[j]!==undefined){
    33             target[i++] = source[j++];
    34         }
    35         target.length = i;
    36         return target;
    37     },
    38     //去除字符串首尾空格的方法
    39     trim:function(str){
    40          return str.trim ? str.trim():str.replace(/^s+|s+$/g,"");
    41     },
    42     //提供遍历的方法
    43     each:function(array,callback){
    44          var i,len;
    45          //当是遍历数组或伪数组的时候
    46          if(itMei.type(array.length)==="number" && array.length>=0){
    47              for(i=0,len=array.length;i<len;i++){
    48                    if(callback.call(array[i],i,array[i])===false){
    49                         break;
    50                    };
    51              }
    52          }else{
    53               //遍历普通对象
    54               for(i in array){
    55                     if(callback.call(array[i],i,array[i])===false){
    56                         break;
    57                     }
    58               }
    59          }
    60     }
    61 });
    62 
    63 //对于遍历的方法,还有一个each方法,是针对dom元素的遍历的,对于操作dom元素的方法我们需要用itMei.fn中的extend方法来扩展
    64 itMei.fn.extend({
    65      each:function(callback){
    66          itMei.each(this,callback);  //使用上面封装的工具类的each实现遍历
    67          return this;   //返回当前调用方法的实例对象,是为了实现jquery中的链式编程
    68      }
    69 })

    在这里封装了8个工具类的方法,以及一个遍历dom元素的each方法。

    封装extend方法在http://www.cnblogs.com/amaya-mei/p/6060466.html中。

  • 相关阅读:
    flash模拟EEROM
    FATFS_SD卡
    AFIO
    ADC1多通道_DMA_内部温度传感器+内部VREFINT
    QmlBook--Meet Qt 5
    NRF24L01
    MWC飞控V2.3串口通信协议——new Multiwii Serial Protocol
    thread相关http://blog.csdn.net/forwayfarer/article/details/3455130
    comparable与comparator的区别http://blog.csdn.net/mageshuai/article/details/3849143
    ArrayList和LinkedList的区别http://pengcqu.iteye.com/blog/502676
  • 原文地址:https://www.cnblogs.com/amaya-mei/p/6136763.html
Copyright © 2020-2023  润新知