文档章节

js学习笔记

z
 zxl911400
发布于 2016/12/05 15:12
字数 739
阅读 0
收藏 0

///////////////////////////////////////////
/*global*/
/////////////////////////////////////
//lurk.Dom.append(lurk.Dom.query('head', true) || document.documentElement, 'script').text = res.responseText;
/**
 * 根据方法名获取方法
 */
function getFunction(func)
{
  if(func.isFunction())
    return func;
  return new Function(func + "()");
}
/**
 * 设置方法为不可枚举类型
 * @param objs
 */
hideFunctions = function(objs) {
  var i = 0, p;
  for (; i < objs.length; i++) {
    p = objs[i].prototype;
    for ( var o in p) {
      if (p[o].isFunction()) {
        Object.defineProperty(p, o, {
          enumerable: false
        });
      }
    }
  }
}
// /////////////////////////////////////
/* Date 扩展 */
// ////////////////////////////////////
/**
 * 判断指定值是否是数组
 * 
 * @return 如果是数组,返回true
 * 
 */
Object.prototype.isArray = function() {
  return Array.isArray(this);
}
/**
 * 判断指定值是否是字符串
 * 
 * @return 如果是字符串,返回true
 * 
 */
Object.prototype.isString = function() {
  return typeof this == 'string';
};
/**
 * 判断指定值是否是数字
 * 
 * @return 如果是数字,返回true
 * 
 */
Object.prototype.isNumber = function() {
  return typeof this == 'number';
};
/**
 * 判断指定值是否是函数
 * 
 * @return 如果是函数,返回true
 * 
 */
Object.prototype.isFunction = function() {
  return typeof this == 'function';
};

/**
 * 判断是否是日期
 * @param value
 * @returns {Boolean}
 */
Object.prototype.isDate = function(value)
{
  return typeof this == 'date';
}

/**
 * 
 * @returns
 */
Object.prototype.clone = function()
{
  var me = this, o;
  o = (me.isString() || me.isNumber) && me;
  if(o) return o;
  o = me.isArray() && [];
  o = !o && {};
  for(var k in me){
    (o[k] = me[k]);
  };
  return o;
}
// /////////////////////////////////////
/* Date 扩展 */
// ////////////////////////////////////
Date.prototype.format = function(fmt) {
  var d = this, f = fmt, k;
  var o = {
    "M+": d.getMonth(),
    "d+": d.getDate(),
    "h+": d.getHours(),
    "m+": d.getMinutes(),
    "s+": d.getSeconds(),
    "S": d.getMilliseconds()
  }
  if (/(y+)/.test(f)) {
    f = f.replace(RegExp.$1, d.getFullYear());
  }
  for (k in o) {
    if (new RegExp("(" + k + ")").test(f)) {
      f = f.replace(RegExp.$1, ((k === 'S' ? "000" : '00') + o[k]).substr(("" + o[k]).length));// ms值为三位数
    }
  }
  return f;
}
Date.prototype.formatDate = function() {
  return this.format('y-M-d');
}
Date.prototype.formatDateTime = function() {
  return this.format('y-M-d h:m:s');
}
// ///////////////////////////////////////////////////
/* Number扩展方法 */
// /////////////////////////////////////////////
/**
 * 格式化日期
 * 
 * @param time
 *          Date对象或者毫秒值
 * @param fmt
 *          返回日期格式,Example: 'yyyy-MM-dd hh:mm:ss' or 'y-M-d h:m:s'
 * @return 日期格式的文本,Example: '2016-01-01 19:00:00'
 */
Number.prototype.formatDate = function(fmt) {
  return new Date(this).format(fmt);
}
/**
 * 格式化货币
 * 
 * @return 货币格式的文本,Example: '1,000,000.00'
 */
Number.prototype.formatCurrency = function() {
  var n = this.toFixed(2) + "", r = /(\d)(\d{3}[\.,])/;
  while (r.test(n))
    n = n.replace(r, "$1,$2");
  return n;
}
/**
 * 格式化字节大小
 * 
 * @param size
 *          字节大小
 * @return 格式后文本,Example: '1.03 GB','430 Byte(s)',etc.
 */
Number.prototype.formatByteSize = function() {
  var v = ["Byte(s)", "KB", "MB", "GB"], i = 0, s = this;
  while (s > 1024 && i < 4) {
    s = s / 1024;
    i++;
  }
  return (i ? s.toFixed(2) : s) + " " + v[i];
}
/**
 * 舍弃指定精度后的小数,对保留的末位数字舍入
 * 
 * @parem precision 要保留的小数位数
 * @return 结果值
 */
Number.prototype.roundUp = function(precision) {
  return Math.ceil(this * Math.pow(10, precision)) / Math.pow(10, precision);
}
/**
 * 舍弃指定精度后的小数
 * 
 * @parem precision 要保留的小数位数
 * @return 结果值
 */
Number.prototype.roundDown = function(precision) {
  return Math.floor(this * Math.pow(10, precision)) / Math.pow(10, precision);
}
// ///////////////////////////////////////////////////
/* String扩展方法 */
// /////////////////////////////////////////////
/**
 * 将日期格式的文本解析为时间值 Example:'2016-01-01'
 * 
 * @return 毫秒值
 */
String.prototype.parseDate = function() {
  return new Date(this.replace(/[^0-9/\s+:]/g, '/')).getTime();
}
/**
 * 判断文本是否含指定前缀
 * 
 * @param prefix
 * @return 如果包含指定前缀,返回true
 */
String.prototype.startWith = function(prefix) {
  return this.indexOf(prefix) == 0
}
/**
 * 判断文本是否含指定后缀
 * 
 * @param suffix
 * @return 如果包含指定后缀,返回true
 */
String.prototype.endWith = function(suffix) {
  return new RegExp(suffix + '$').test(this);
}
/**
 * 去除文本前后空白字符(如:空格、TAB字符等)
 * 
 * @param prefix
 * @return 结果字符串
 */
String.prototype.trim = function() {
  return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
}
// ///////////////////////////////////////////////////
/* Array扩展方法 */
// /////////////////////////////////////////////
Array.prototype.insert = function(index, items) {
  var i = items.isArray() ? items : [items];
  i.unshift(index, 0);
  this.splice.apply(this, i);
  return this;
}

///////////////////////////////////////////////////
/*隐藏自定义属性,不被for in 枚举*/
//////////////////////////////////////////////////
hideFunctions([Object, Date, Number, String, Array]);

© 著作权归作者所有

共有 人打赏支持
z
粉丝 0
博文 2
码字总数 956
作品 1
成都
高级程序员
私信 提问

暂无文章

用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
29分钟前
0
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
3
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
3
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部