Hàm mũi tên

Hàm mũi tên (arrow function)

Hàm mũi tên là cách viết ngắn gọn của biểu thức hàm mà hàm này không có các biến this, arguments, super của riêng nó. Trong trường hợp hàm không có thân hàm, chỉ có biểu thức thì tương đương với hàm trả về biểu thức.

Ví dụ

1
2
3
4
5
6
7
let f1 = () => {}; // hàm không nhận tham số, trả về undefined
let f2 = s => s.length; // hàm nhận vào s, trả về s.length
let f3 = () => ({}); // hàm không nhận tham số, trả về object rỗng ({})
const sum = (a, b) => a + b; // hàm nhận vào 2 số a, b, trả về tổng a + b
const cube = x => { // hàm nhận vào một số trả về lập phương của số đó
  return x ** 3;
}; 

Các hàm trên tương đương với hàm theo cách viết thông thường như sau:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
function f1() {}

function f2(s) {
  return s.length;
}
function f3() {
  return {};
}
const sum = function(a, b) {
  return a + b;
}
const cube = function(x) {
  return x ** 3;
}

Biến this trong hàm mũi tên sẽ lấy biến this của hàm gọi nó.