Cách truyền mảng làm tham số hàm trong JavaScript bằng phương thức call()
Hướng dẫn cách truyền một mảng làm tham số cho hàm trong JavaScript sử dụng phương thức `call()`. Bài viết sẽ giới thiệu cách sử dụng phương thức `call()` để thay đổi ngữ cảnh và truyền tham số từ mảng.
Phương thức call()
trong JavaScript cho phép bạn gọi một hàm với một đối tượng cụ thể làm ngữ cảnh, và truyền các đối số theo cách thủ công. Tuy nhiên, khi muốn truyền một mảng làm tham số, bạn cần truyền từng phần tử của mảng một cách rõ ràng. Bài viết này sẽ giải thích cách thực hiện điều đó.
Mã JavaScript:
function sum(a, b, c) {
return a + b + c;
}
// Mảng sẽ được truyền làm tham số cho hàm
const numbers = [1, 2, 3];
// Sử dụng phương thức call để truyền từng phần tử của mảng làm tham số
const result = sum.call(null, numbers[0], numbers[1], numbers[2]);
console.log(result); // Kết quả sẽ là 6
Giải thích chi tiết từng dòng code:
-
function sum(a, b, c)
: Định nghĩa một hàmsum
với ba tham sốa
,b
,c
để tính tổng. -
const numbers = [1, 2, 3];
: Khai báo một mảng gồm ba phần tử. -
sum.call(null, numbers[0], numbers[1], numbers[2]);
: Sử dụngcall()
để truyền từng phần tử của mảng vào hàmsum
.null
được dùng để không thay đổi ngữ cảnhthis
. -
console.log(result);
: In ra kết quả của hàmsum
, cụ thể là6
.
Lời khuyên:
- Khi muốn truyền một mảng có số lượng phần tử lớn hơn, hãy cân nhắc sử dụng phương thức
apply()
để đơn giản hóa việc truyền mảng. - Phương thức
call()
cho phép truyền các tham số cụ thể, thích hợp cho trường hợp bạn cần điều chỉnh linh hoạt từng đối số.