MDN中對於Array.prototype.slice.()的介紹中,提到了類數組對象。以下是原文: slice 方法可以用來將一個類數組(Array-like)對象/集合轉換成一個新數組。你只需將該方法綁定到這個對象上。 一個函數中的 arguments 就是一個類數組對象的例子。 除了使用 Ar ...
MDN中對於Array.prototype.slice.()
的介紹中,提到了類數組對象。以下是原文:
slice
方法可以用來將一個類數組(Array-like)對象/集合轉換成一個新數組。你只需將該方法綁定到這個對象上。 一個函數中的 arguments
就是一個類數組對象的例子。
function list() {
return Array.prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
除了使用 Array.prototype.slice.call(arguments)
,你也可以簡單的使用 [].slice.call(arguments)
來代替。
所以arguments並不是真正的數組對象,只是與數組類似而已,所以它並沒有slice這個方法,而Array.prototype.slice.call(arguments, 1)可以理解成是讓arguments轉換成一個數組對象,讓arguments具有slice()方法。
同理可知,我們可以給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