Hàm có tên nhưng là Function Expression trong JavaScript
Bây giờ hãy tạo một hàm sẽ có tên, nhưng đồng thời là Function Expression, vì nó tham gia vào một biểu thức:
+function func() {
console.log('!');
}
Thú vị là theo tên func chúng ta
sẽ không thể truy cập hàm của mình, điều này sẽ
dẫn đến lỗi:
+function func() {
console.log('!');
}
func(); //!! sẽ báo lỗi
Để có thể gọi hàm của chúng ta, nó cần được gán cho một biến nào đó:
let test = function func() {
console.log('!');
};
test(); // sẽ hiển thị '!'
Một lần nữa: một hàm là biểu thức hàm không thể được gọi bằng tên của nó. Hàm như vậy chỉ có thể được gọi với việc sử dụng biến mà hàm đó đã được gán vào.
Tuy nhiên, một biểu thức hàm có thể có tên hàm, điều này sẽ đúng cú pháp. Tại sao cần như vậy, chúng ta sẽ tìm hiểu trong các bài học tiếp theo.
Hãy tổng kết: các hàm là Function Declaration hay Function Expression không phải vì chúng có tên hay không có tên, mà vì chúng có tham gia vào các biểu thức hay không.
Như bạn đã thấy ở trên, một hàm không tên có thể được hiểu là Function Declaration, và một hàm có tên có thể là Function Expression.