Khi chúng ta muốn function hoisting - vì các AF là ẩn danh.
Khi chúng ta muốn sử dụng this / arguments trong một hàm - vì các AF không có this / arguments của riêng chúng, chúng phụ thuộc vào ngữ cảnh bên ngoài của chúng.
Khi chúng ta muốn sử dụng hàm được đặt tên (named function) - vì các AF là ẩn danh.
Khi chúng ta muốn sử dụng hàm như một phương thức khởi tạo - vì các AF không có chức năng này.
Khi chúng ta muốn thêm một thuộc tính là một hàm vào trong object literal và sử dụng đối tượng trong đó - vì chúng ta không thể truy cập vào điều này (mà phải là chính đối tượng).