源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JavaScript常用小技巧小结

  • 时间:2022-10-31 20:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript常用小技巧小结
前言      总结一下最近接触到的JavaScript语法糖,与大家共享。      每块糖都有详细的说明和示例,就不多说了。 准确的类型检查
[u]复制代码[/u] 代码如下:
 /*  * @function:  *   类型检查示例  *   通过此方法,可以检查某个变量是否为期望的数据类型  * @params:  *   obj 需要检查的变量,必选  *   config 数据类型白名单,可选,默认为全部类型  * @return:  *   true 表示检查通过,false 未通过  * @examples:  *   typeCheck("str"); //return true  *   typeCheck({},{"[object Array]": 1}); //return false  */  function typeCheck(obj,config){    var hasOp = Object.prototype.hasOwnProperty,        toStr = Object.prototype.toString,        _config = config || {          "[object Object]": 1,          "[object Array]": 1,          "[object Regex]": 1,          "[object String]": 1,          "[object Number]": 1,          "[object Boolean]": 1,          "[object Function]": 1,          "[object Undefined]": 1,          "[object Null]": 1        };       return hasOp.call(_config,toStr.call(obj));  }
 优雅的添加原型方法
[u]复制代码[/u] 代码如下:
 /*  * @description:  *   优雅的添加原型方法  *   在公共作用域执行此代码片段即可  */  if(typeof Function.prototype.method !== "function") {    Function.prototype.method = function(name,fn){      this.prototype[name] = fn;      return this;    };  }  /*  * 使用示例  */  //定义一个“测试类”  function testFn(){  }  //添加测试类的成员方法  testFn.method("add",function(a,b){    return a + b;  }).method("sub",function(a,b){    return a - b;  });  //实例化  var testObj = new testFn();  //调用成员方法  testObj.add(1,5);  //return 6  testObj.sub(7,2);  //return 5
 快捷创建命名空间
[u]复制代码[/u] 代码如下:
 /*  * @function:  *   创建命名空间  * @params:  *   ex 命名空间表达式,例如:NSROOT.service.impl  *   此表达式必须从根节点开始写起  * @return:  *   返回Object,此Object是表达式的最后一个节点  * @others:  *   如果您不喜欢NSROOT这个命名,简单的查找替换即可  */  var NSROOT = NSROOT || {};  NSROOT.namespace = function(ex){    var _ex = ex || "",        nsArray = _ex.split("."),        parentNode = NSROOT,        _s = "",        i = 0;    //判断命名空间是否从根节点开始    if(nsArray[0] !== "NSROOT"){      throw("命名空间必须从根节点开始!");    }    //去掉root节点    nsArray = nsArray.slice(1);    for(i = 0;i<nsArray.length;i++){      _s = nsArray[i];      if(parentNode[_s] === undefined){        parentNode[_s] = {};      }      parentNode = parentNode[_s];    }    return parentNode;  };  /*  * 使用示例  */  //创建新的命名空间  var impl = NSROOT.namespace("NSROOT.service.impl");  alert(impl === NSROOT.service.impl);  //return true  //创建已有的命名空间,不覆盖原来的数据  NSROOT.namespace("NSROOT.service.impl");  alert(impl === NSROOT.service.impl);  //return true
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部