Array.prototype.slice.call()_苏颜_前端开发者

MDN中对于Array.prototype.slice.()的介绍中,提到了类数组对象。以下是原文:

Array.prototype.slice.()

slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的 arguments 就是一个类数组对象的例子。

slicearguments

function list() {
  return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]

function list() {
return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]function list() {
return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]function list() {
return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]list() {
return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]) {
return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]var list1 = list(1, 2, 3); // [1, 2, 3]1, 2, 3); // [1, 2, 3]2, 3); // [1, 2, 3]3); // [1, 2, 3]// [1, 2, 3]

除了使用 Array.prototype.slice.call(arguments),你也可以简单的使用 [].slice.call(arguments) 来代替。

Array.prototype.slice.call(arguments)[].slice.call(arguments)

所以arguments并不是真正的数组对象,只是与数组类似而已,所以它并没有slice这个方法,而Array.prototype.slice.call(arguments, 1)可以理解成是让arguments转换成一个数组对象,让arguments具有slice()方法。

同理可知,我们可以给Array.prototype.slice.call(arguments)加上第二个参数。

Array.prototype.slice.call(arguments)

function list() {
  return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html

function list() {
return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
function list() {
return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
function list() {
return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
list() {
return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
) {
return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
return Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
Array.prototype.slice.call(arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
arguments, 1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
1);
}

var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
var list2 = list(4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
4, 5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
5, 6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
6);
list2; //[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html
//[5, 6]
转载自:https://www.cnblogs.com/xingteng/p/9878523.html

https://www.cnblogs.com/xingteng/p/9878523.html

» 本文来自:前端开发者 » 《Array.prototype.slice.call()_苏颜_前端开发者》
» 本文链接地址:https://www.rokub.com/73200.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!