函式的擴充套件 rest引數

2021-08-16 10:01:12 字數 1075 閱讀 9718

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 箭頭函式也可以與物件混合使用。注意變數的屬性需要用花括號括起來。基本語...