Friday, November 15, 2024
HomeLập Trình TypeScriptAnonymous Functions | Lập trình TypeScript

Anonymous Functions | Lập trình TypeScript

Anonymous function là functions định nghĩa mà không có tên. Đây là function được tạo ra tại thời điểm runtime.
– Anonymous function được định nghĩa như một function expression
– Một function trong typescript được định nghĩa bằng cách sử dụng function declaration và function expression
– Với cách dùng function declaration thì function được đặt tên. Trong khi đó một anonymous function sử dụng một function expression.
Function expression có thể được đặt tên nhưng nếu nó không có tên thì nó được gọi là anonymous function.
Ví dụ:

TypeScript
let fn: (param1: string, param2: string) => void;
fn = function (param1: string, param2: string): void {
  // Code for anonymous function
  console.log(param1);
  console.log(param2);
};
fn("Javascript", "TypeScript");

Giải thích: code bên trên triển khai một function không có tên

Định nghĩa Anonymous Function dùng Arrow Function

Cách thứ nhất: đầu tiên khai báo function type sau đó gán nó với một arrow function

TypeScript
let a: () => void; // Declare function type

// assign to arrow function
a = () => {
  console.log("This is an arrow function !");
};

Cách thứ 2: gán trực tiếp arrow function cho một variable

TypeScript
let b = () => {
  console.log("this is arrow function !");
};

Cách thứ 3: vừa khai báo function tiếp và gán cho arrow function ngay sau đó

TypeScript
let c: (v: number) => number = (v: number): number => {
  return 10 * v;
};

Sử dụng Anonymous Function như một Callback Function

Ví dụ:

TypeScript
let numbers: Array<number> = [90, 64, 323, 322, 588, 668, 9, 121, 34, 1, 2];
numbers.sort((v1: number, v2: number): number => {
  return v1 < v2 ? 1 : -1;
});
console.log("Sorted list: " + numbers);

Giải thích code: code trên có nhiệm vụ sắp sếp các phần tử của một mảng theo thứ tự giảm dần thông qua một phương thức có sẵn là sort(). Trong sort có một tham số là một callback function dùng cho việc sắp xếp mảng.
Định nghĩa phương thức sort như sau:

TypeScript
   /**
     * Sorts an array in place.
     * This method mutates the array and returns a reference to the same array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive
     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.
     * ```ts
     * [11,2,22,1].sort((a, b) => a - b)
     * ```
     */
    sort(compareFn?: (a: T, b: T) => number): this;

Kết quả sau khi sắp xếp

[ 668, 588, 323, 322, 121, 90, 64, 34, 9, 2, 1 ]

Tóm tắt

Chúng ta có thể tạo anonymous function bằng 2 cách, một là dùng function keyword và một là dùng arrow function. Tuy nhiên arrow function là cách thường dùng nhất vì tính đơn giản dễ nhìn.

Nguyễn Minh Châu
Nguyễn Minh Châuhttps://nhatkydev.com
Hi guys ! I'm a software developer. I love programming and new technologies. I create non-professional content on this website, you can only view it for reference purposes.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular