Câu lệnh đầu tiên là câu lệnh hàm được đặt tên, câu lệnh thứ hai gán một biểu thức hàm ẩn danh cho một biến.
Tuyên bố chức năng được thêm vào phạm vi của nó ngay lập tức - bạn không cần phải chạy nó trước khi có thể gọi nó, vì vậy công trình này:
var y = sum(1, 2);
function sum(x, y) {
return x + y;
}
Nhưng biểu hiện chức năng chỉ được gán cho biến khi mã được thực thi, vì vậy đây không hoạt động:
// Error here because the function hasn't been assigned to sum yet.
var y = sum(1, 2);
var sum = function(x, y) {
return x + y;
}
Một lợi thế của hình thức biểu hiện là bạn có thể sử dụng nó để gán chức năng khác nhau để biểu hiện ở những điểm khác nhau - vì vậy bạn có thể thay đổi chức năng, hoặc sử dụng một cái khác theo conditi khác tiện ích (chẳng hạn như tùy thuộc vào trình duyệt đang được sử dụng).
Lợi thế của tuyên bố hàm được đặt tên, là trình gỡ lỗi sẽ có thể hiển thị tên. Mặc dù, bạn có thể đặt tên cho các biểu thức hàm:
var sum = function sum(x, y) {
return x + y;
}
Nhưng điều này có thể gây nhầm lẫn vì hai tên thực sự ở các phạm vi khác nhau và tham chiếu đến các thứ khác nhau.
Nguồn
2008-09-22 12:32:27
không sử dụng chức năng tên, chỉ cần sử dụng chức năng ẩn danh để đóng gói, ngăn ngừa ô nhiễm biến của phạm vi toàn cầu –