Array.prototype.slice.call(arguments) 通俗法理解
Posted 灰姑娘的冰眸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Array.prototype.slice.call(arguments) 通俗法理解相关的知识,希望对你有一定的参考价值。
Array.prototype.slice.call(arguments,num) 能将具有length属性的对象转成数组。
slice 从字面上的意思可以理解为截取数组的一部分。
call 从字面上的意思可以理解为截取出来
arguments 仅与数组类似,不是真正的数组对象,所以它并没有slice这个方法,让arguments转换成一个数组对象,让arguments具有slice()方法。
注:要是直接写arguments.slice(num)会报错。
Array.prototype.slice.call(arguments,num);
即把调用方法的参数截取出来。 如:
var a={length:2,0:‘first‘,1:‘second‘};//类数组,有length属性,长度为2,第0个是first,第1个是second
console.log(Array.prototype.slice.call(a,0));// ["first", "second"],调用数组的slice(0);
var a={length:2,0:‘first‘,1:‘second‘};
console.log(Array.prototype.slice.call(a,1));//["second"],调用数组的slice(1);
var a={0:‘first‘,1:‘second‘};//去掉length属性,返回一个空数组
console.log(Array.prototype.slice.call(a,0));//[]
function test(){
console.log(Array.prototype.slice.call(arguments,0));//["a", "b", "c"],slice(0)
console.log(Array.prototype.slice.call(arguments,1));//["b", "c"],slice(1)
}
test("a","b","c");
以上是关于Array.prototype.slice.call(arguments) 通俗法理解的主要内容,如果未能解决你的问题,请参考以下文章