Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách dùng số lượng tham số không giới hạn trong hàm JavaScript

Cách 1: arguments object (ES5)

Đối tượng arguments giống mảng, chứa tất cả đối số truyền vào.

function sum() {
  var total = 0;
  for (var i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }
  return total;
}
sum(1,2,3,4); // 10

Nhược điểm: Không phải mảng thật (không có map, filter), không hoạt động trong arrow function.

Cách 2: Rest parameters (ES6) – Khuyên dùng

function sum(...numbers) {
  return numbers.reduce((acc, n) => acc + n, 0);
}
sum(1,2,3,4); // 10
    numbers là mảng thật.
  • Hỗ trợ destructuring, spread.
  • Có thể kết hợp tham số cố định: function multiply(factor, ...nums).

Cách 3: Spread operator khi gọi

var args = [1,2,3];
sum(...args); // truyền từng phần tử

So sánh nhanh

Đặc điểmargumentsRest params
KiểuArray-likeArray thật
Arrow functionKhông cóCó
DestructuringKhôngCó
Tham số khácKhó táchDễ dàng