仿内置方法

1.仿内置方法数组slice

Array.prototype.mySlice=function(n1,n2){
    var n1,n2,ary=[];
    if (arguments.length==0){
      //    一、判断传进0个参数
      return ary
    }else if(arguments.length==1){
//      二、判断传进1个参数
       n1=Number(n1);
      if (isNaN(n1)){return ary};
//     2.1判断参数是否在length范围
      if (Math.abs(n1)<this.length-1){
        if (n1>=0){
          for(var i=n1;i<this.length;i++){
            ary[ary.length]=this[i];
          }
          return ary
        }else{
          for(var i=this.length-1;i>=this.length+n1;i--){
            ary.unshift(this[i]);
          }
          return ary
        }
      }
    }else if(arguments.length==2){
//      三、判断传进2个参数
       n1=Number(n1);
       n2=Number(n2);
//      3.1判断两个参数是否是有效数字
      if(isNaN(n1)||isNaN(n2)){
        return ary
      }else{
//        1.n1,n2都是正数且n1<n2
        if (n1<n2&&n1>-1&&n2>-1){
          for(var i=n1;this.length<n2?i<this.length:i<n2;i++){
            ary[ary.length]=this[i];
          }
          return ary
        }else if(n1<n2&&n1<0&&n2<0){
//2.     2.n1,n2都式负数,且n1?<n2
          for (var i=(this.length+n1>0?this.length+n1:0);i<this.length+n2;i++){
             ary[ary.length]=this[i]
          }
          return ary
        }else if(n1>=0&&n2<0||n1<0&&n2>=0){
//3.    n1,n2一正一负,怎么办
          if ((n1>=0&&n2<0)&&(n1<this.length+n2)){
            for(var i=n1;i<this.length+n2;i++){
              ary[ary.length]=this[i]
            }
            return ary
          }else if((n1<0&&n2>=0)&&(this.length+n1<n2)){
            for(var i=(n1>0?this.length+n1:0);i<(n2<this.length?n2:this.length);i++){
              ary[ary.length]=this[i]
            }
            return ary
          }
        }
    }
    return ary
      }
  }

// 实现一个需求 (5).push(10).reduce(2) 5+10-2方法

  Number.prototype.push=function(n){
    var temp=Number(n);
    var _this=Number(this);
    return _this+=temp;
  }
Number.prototype.reduce=function(n){
  var temp=Number(n);
  var _this=Number(this);
  return _this-=temp;
}
  var a=5;
//console.log(a.push(5).reduce(2));  //8
原文地址:https://www.cnblogs.com/liangfc/p/8722389.html