本文将自定义_pop和_shift来模拟数组的pop和shift方法
_pop:
/* *js中数组的pop方法:删除数组的最后一个元素,把数组的长度减1,并且返回删除的这个元素;如果数组为空,则pop()不改变数组,并且返回undefined; */ Array.prototype._pop=function(){//自定义一个方法_pop if(!this.length) return undefined; //如果数组的长度为零,调用该方法的时候,直接返回一个undefined var end=this[this.length-1]; //获取最后一个值赋值给变量end; this[this.length-1]=null; //把最后一个值释放掉 this.length=this.length-1; //把数组的长度减1 return end; //返回被尾部被删除的元素 } var eg=[1,2,3,4]; //例子 var resultdata=eg._pop(); //执行数组方法 console.log(eg,resultdata); //执行结果
_shift:
/* *js中数组的操作方法shift(),用于把数组的第一个元素从其中删除。并返回第一个元素的值; */ Array.prototype._shift=function(){//在数组的原型链上自定义——shift方法 var start=this[0]; //存储数组中第一个元素 this[0]=null;//然后把数组中的第一个元素释放 for(var i=0;i<this.length;i++){//数组元素做一个循环遍历 this[i]=this[i+1];//数组中,元素的前一个元素跟后一个元素交换位置 } this.length=this.length-1;//去除数组的最后一位元素 return start;//返回数组中的第一个元素 } var eg=[1,23,34,3434,34345];//例子 var result=eg._shift();//执行方法,并且获取返回值 console.log(eg,result);//执行结果