博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JavaScript]偶自己的JavaScript扩展库(一点一点完善中...)
阅读量:5053 次
发布时间:2019-06-12

本文共 2464 字,大约阅读时间需要 8 分钟。

所有的对内置对象扩展的方法都是以x(stands for 'extend')开头, 非扩展内置对象的方法按英文原意命名, 然后命名空间为wf(stands for wind fantasy)

Object.prototype.xattach = function (obj, nooverwrite) {  for (var prop in obj) {    // if the property exists and disallow the property to be overwritten, just skip    if (typeof this[prop] != 'undefined' && nooverwrite) {      continue;    }    this[prop] = obj[prop];  }  return this;}        String.xattach({  xrepeat: function (repeat, times) {    return new Array(times+1).join(repeat);  }});        String.prototype.xattach( {  xrepeat: function (times) {    return String.xrepeat(this, times);  }});        Array.xattach({  'xrange': function (start, stop, step) { // python-like range    var value, range = [];    if (arguments.length == 1) {      stop = start;      start = 0;    }    if (isNaN(stop) || isNaN(start)) {      return null;    }    if (isNaN(step) || step == 0)      step = start < stop ? 1 : -1;    if (step > 0) {      for (value = start; value < stop; value += step)        range.push(value);    } else {      for (value = start; value > stop; value += step)        range.push(value);    }    return range;  }});        Array.prototype.xattach({  //        toString: function () { // better toString  //          return ' [' + this.join(',') + '] ';  //        },  xcopy: function () { // shallow copy    return this.slice();  },  // [1,2,3,4,5].xgroup(2) => [ [1,2], [2,3], [3,4], [4,5] ]  xgroup: function (count) { // group all subsequences of which the length is count from this    var i, targetlen = this.length - count + 1, target = [];    for (i = 0; i < targetlen; ++i)      target[i] = this.slice(i, i+count);    return target;  },  // ['a', 'b', 'c']; xmap(null, parseInt, true, 16) => [10, 11, 12]  // if you don't want to change array itsself and wanna get the return value, you  // can do like this: arr.xcopy().xmap(null, parseInt, true, 16) // just change its (shallow) copy  xmap: function (thisobj, func, changeself, extraargs) { // map this with thisobj.fuc    var i = 0, len = this.length;    if (! (extraargs instanceof Array)) {      extraargs = Array.prototype.slice.call(arguments, 3);    }    if (changeself) {      for (i=0; i < len; ++i) {        this[i] = func.apply(thisobj, [ this[i] ].concat(extraargs));      }    } else {      for (i=0; i < len; ++i) {        func.apply(thisobj, [ this[i] ].concat(extraargs));      }    }    return this;  }});

转载于:https://www.cnblogs.com/-Wind/archive/2011/11/23/jslib.html

你可能感兴趣的文章
mysql group by 报错 ,only_full_group_by 三种解决方案
查看>>
(转载)iOS UILabel自定义行间距时获取高度
查看>>
Linux里$等记得转义
查看>>
Powershell使用管道
查看>>
银行卡输入特效 4个加一空格
查看>>
zip unzip linux下使用
查看>>
每日英语:Instant Gratification: China Luxury Buyers Getting More Impulsive
查看>>
Java数据库操作学习
查看>>
使用更改跟踪(ChangeTracking)来实现数据类型变更
查看>>
c++访问mysql数据库
查看>>
JAVA代码查错试题集
查看>>
C#中小数点后保留两位小数,四舍五入的函数及使用方法
查看>>
你的JavaBean是否真的需要实现Serializable
查看>>
CSS3效果:立体字和镂空字
查看>>
规范 : angular 组合 jquery plugin
查看>>
文字无缝向上滚动
查看>>
IE6,谢谢你,goodbye?
查看>>
mongoDB 索引的用法
查看>>
Linux +apache+fastcgi运行c/c++
查看>>
atitit。 hb Hibernate sql 查询使用
查看>>