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ó.