Tham số của hàm được truyền trong JavaScript
Giả sử chúng ta có một hàm test,
thông số của nó chấp nhận một hàm khác và trong bảng điều khiển
hiển thị kết quả làm việc của hàm được truyền đó:
function test(func) {
console.log( func() );
}
Giả sử hàm được truyền func
chấp nhận một số làm tham số
và làm gì đó với nó. Hãy truyền
cho nó, ví dụ, số 3:
function test(func) {
console.log( func(3) );
}
Bây giờ chúng ta hãy gọi hàm test,
truyền vào nó một hàm ẩn danh làm tham số.
Hàm ẩn danh này sẽ nhận một số
làm tham số và trả về bình phương của số đó.
Kết quả của toàn bộ cấu trúc này
sẽ hiển thị bình phương của số 3, tức là 9:
// Sẽ hiển thị 9:
test(
function(num) {
return num * num;
}
);
function test(func) {
console.log(func(3));
}
Hãy trình bày mã một cách thanh lịch hơn:
// Sẽ hiển thị 9:
test(function(num) {
return num * num;
});
function test(func) {
console.log(func(3));
}
Sao chép mã hàm test của tôi.
Gọi hàm này, truyền cho nó một hàm ẩn danh
làm tham số, hàm này sẽ
nhận một số làm tham số và trả về lập phương của nó.
Sửa đổi mã của bạn để hàm được truyền
không phải là hàm ẩn danh, mà được định nghĩa
dưới dạng Function Declaration với tên func.
Chuyển đổi hàm được truyền thành Function
Expression với cùng tên func.
Giả sử hàm được truyền bây giờ nhận
hai tham số và trả về tổng của chúng. Khi
gọi hàm được truyền bên trong test,
hãy truyền vào hàm được truyền số 2
và số 3. Hiển thị kết quả.