<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>重写-myslice-切割数组</title> <script type="text/javascript"> //扩展Array API Array.prototype.mySlice = function(begin){ var arr = []; for(var i=begin;i<this.length;i++){ arr.push(this[i]); } return arr; } var arr = [8,1,10,3,2]; var result = arr.slice(1); console.log(result); var result1 = arr.mySlice(1); console.log(result1); var result2 = Array.prototype.mySlice.call(arr,1); //.call可以给this赋值 //通过call调用myslice // arr->Array.prototype console.log(result2); /* apply : 参数(在其中运行函数的作用域,参数数组(this,arguments)); call : 参数(在其中运行函数的作用域,参数列表) 这两个方法作用都是在特定的作用域中调用函数,实际上等于设置函数内部的this的值 */ </script> </head> <body> </body> </html>