function a(){ var arr = Array.prototype.slice.apply(arguments) console.log(arr);//[1,2,3,4,5] } a(1,2,3,4,5); 解释:apply是用来改变函数执行是this指向的,这里以argumens对象为this来执行Array.prototype.slice函数,而Array.prototype.slice函数不带参数时默认返回的是数组对象自己。 var ar = Array.prototype.slice.apply({0:1,length:1}) console.log(ar)//[0] 这里会将{0:1,length:1}造成一个新数组(这里属性名必须是0,1,2....,并且length属性不能少,并且应该跟前面属性个数对应,这样就模拟了一个数组)