Truyền số làm tham số trong JavaScript
Bây giờ hãy để số mà hàm được truyền vào thực hiện thao tác gì đó,
không lưu cứng bên trong test, mà truyền vào dưới dạng tham số đầu tiên:
function test(num, func) { // tham số đầu tiên nhận vào là một số
console.log(func(num));
}
Hãy sử dụng hàm của chúng ta:
function test(num, func) {
console.log(func(num));
}
// Sẽ in ra 4:
test(2, function(num) {
return num * num;
});
Ưu điểm của cấu trúc của chúng ta: chúng ta có
một hàm test, nhận một số làm tham số.
Nhưng việc sẽ làm gì với số đó
không bị mã hóa cứng trong hàm test.
Chúng ta có thể, ví dụ, truyền vào tham số thứ hai của hàm
test một hàm tính bình phương,
hoặc cũng có thể truyền một hàm tính lập phương:
function test(num, func) {
console.log(func(num));
}
// Tìm bình phương của số:
test(2, function(num) {
return num * num; // trả về bình phương
});
// Tìm lập phương của số:
test(2, function(num) {
return num * num * num; // trả về lập phương
});
Giả sử hàm test nhận một số làm tham số đầu tiên,
còn tham số thứ hai và thứ ba là
các hàm, cũng nhận các số làm tham số.
Giả sử hàm test trả về tổng
kết quả của các hàm được truyền vào:
function test(num, func1, func2) {
return func1(num) + func2(num);
}
Gọi hàm test, truyền số 3 làm tham số đầu tiên,
hàm tính bình phương làm tham số thứ hai,
và hàm tính lập phương làm tham số thứ ba.
Hiển thị kết quả làm việc trong console.