Mảng với các hàm ẩn danh trong JavaScript
Tôi đã đề cập trước đây rằng các hàm trong JavaScript hành xử giống như chuỗi hoặc số. Đặc biệt, có thể tạo một mảng bao gồm các hàm. Hãy tạo ra:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Ví dụ, hãy xuất nội dung của phần tử thứ nhất của mảng ra console:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
console.log(arr[0]); // sẽ thấy mã nguồn của hàm đầu tiên
Như bạn thấy, trong ví dụ trên chúng ta nhận được mã nguồn của hàm, chứ không phải kết quả.
Để hàm được gọi, cần thêm
dấu ngoặc tròn vào sau nó. Vì hàm của chúng ta
được lưu trong arr[0], nên dấu ngoặc tròn
cần được viết sau dấu ngoặc vuông, như
thế này: arr[0](). Hãy kiểm tra:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
arr[0](); // sẽ xuất ra '1'
Cũng có thể duyệt qua mảng các hàm của chúng ta bằng vòng lặp và trong vòng lặp đó gọi từng hàm:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
for (let func of arr) {
func(); // gọi các hàm của chúng ta trong vòng lặp
}
Tạo một mảng arr với ba hàm.
Hàm đầu tiên trả về qua return
số 1, hàm thứ hai - số 2,
hàm thứ ba - số 3.
Sử dụng mảng arr bạn đã tạo,
hãy xuất số 3 ra console bằng cách gọi
hàm tương ứng.
Sử dụng mảng arr bạn đã tạo,
hãy tìm tổng kết quả của các hàm (không dùng vòng lặp).
Duyệt qua mảng arr bạn đã tạo
bằng vòng lặp và xuất kết quả làm việc của tất cả
các hàm ra console.