⊗jsPmFNClb 255 of 505 menu

Hàm callback trong JavaScript

Hàm có thể được truyền vào các hàm khác dưới dạng tham số. Các hàm-tham số như vậy được gọi là callback (callback). Hãy cùng xem cách làm việc với chúng qua ví dụ.

Giả sử chúng ta muốn tạo một hàm, nhận tham số đầu tiên là một mảng, và tham số thứ hai là một callback, sẽ được áp dụng cho từng phần tử của mảng:

function each(arr, callback) { // mã ở đây }

Hãy viết phần triển khai cho hàm của chúng ta:

function each(arr, callback) { let result = []; for (let elem of arr) { result.push( callback(elem) ); // gọi hàm callback } return result; }

Hàm each của chúng ta là hàm tổng quát. Điều này có nghĩa là chúng ta có thể truyền vào nó những callback khác nhau, thực hiện các thao tác khác nhau trên mảng. Đồng thời, mã của hàm chúng ta vẫn giữ nguyên không đổi - chỉ có các callback được truyền vào là thay đổi.

Lấy ví dụ, hãy sử dụng hàm của chúng ta để bình phương mỗi phần tử của một mảng bất kỳ. Để làm điều này, chúng ta truyền vào một callback tương ứng làm tham số:

let result = each([1, 2, 3, 4, 5], function(num) { return num ** 2; }); console.log(result);

Bây giờ hãy lập phương các phần tử của mảng. Để làm điều này, chúng ta truyền một callback khác thực hiện thao tác này làm tham số:

let result = each([1, 2, 3, 4, 5], function(num) { return num ** 3; }); console.log(result);

Cho một mảng số. Sử dụng hàm each mà chúng ta đã tạo, hãy tăng gấp đôi mỗi phần tử.

Cho một mảng chuỗi. Sử dụng hàm each mà chúng ta đã tạo, hãy đảo ngược các ký tự của mỗi chuỗi theo thứ tự ngược lại.

Cho một mảng chuỗi. Sử dụng hàm each mà chúng ta đã tạo, hãy viết hoa ký tự đầu tiên của mỗi chuỗi.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối