es6 引入 rest 引數(形式為...變數名
),用於獲取函式的多餘引數,這樣就不需要使用arguments
物件了。rest 引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。
function add(...values)
return sum;
}add(2, 5, 3) // 10
上面**的add
函式是乙個求和函式,利用 rest 引數,可以向該函式傳入任意數目的引數。
下面是乙個 rest 引數代替arguments
變數的例子。
// arguments變數的寫法
function sortnumbers()
// rest引數的寫法
const sortnumbers = (...numbers) => numbers.sort();
arguments
物件不是陣列,而是乙個類似陣列的物件。所以為了使用陣列的方法,必須使用array.prototype.slice.call
先將其轉為陣列。rest 引數就不存在這個問題,它就是乙個真正的陣列,陣列特有的方法都可以使用。下面是乙個利用 rest 引數改寫陣列push
方法的例子。
function push(array, ...items) );
}var a = ;
push(a, 1, 2, 3)
注意,rest 引數之後不能再有其他引數(即只能是最後乙個引數),否則會報錯。
// 報錯
function f(a, ...b, c)
函式的length
屬性,不包括 rest 引數。
(function(a) {}).length // 1
(function(...a) {}).length // 0
(function(a, ...b) {}).length // 1
ES6 函式的擴充套件 rest引數
es6 引入 rest 引數 形式為 變數名 用於獲取函式的多餘引數,這樣就不需要使用 arguments 物件了。rest 引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。function add values return sum add 2,5,3 10上面 的 add 函式是乙個求和...
函式的rest引數
如果想要實現為函式傳入多個引數,那麼可以使用arguments物件,例如 function foo foo 1,2,3 12 3 可是我們都知道arguments只是乙個類似陣列的物件而並不是陣列,所以如果我們想使用一些陣列上的方法例如sort方法就很不方便。es6中新增加了rest引數 形式為.變...
箭頭函式 rest引數與擴充套件運算子
一 基本用法 箭頭函式的基本語法是 var 函式名 引數1,引數2 例如一下兩端 進行函式宣告的功能是一樣的 var f1 num1,num2 var f2 function num1,num2 f1 1,2 3f2 3,4 7 箭頭函式也可以與物件混合使用。注意變數的屬性需要用花括號括起來。基本語...