GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing completejavascript.com — Function expression trong JavaScript Cập nhật ngày 21/11/2021 Trong bài viết trước, mình đã tìm hiểu về hàm trong JavaScript. Cách khai báo hàm đó gọi là "function declaration". Bài viết này mình sẽ tìm hiểu về một khái niệm khác gọi là "function expression" hay dịch ra là "biểu thức hàm". Function expression là gì?Function expression hiểu đơn giản là hàm được định nghĩa trong một biểu thức, ví dụ: Có thể hiểu là mình khởi tạo một hàm, rồi gán hàm đó cho biến Kết quả hiển thị ra là một string biểu diễn hàm. Chú ý: trong câu lệnh Kết quả là function expression với Sau đó là dòng Đặc điểm của function expressionVì biểu thức hàm cũng là một giá trị, nên bạn hoàn toàn có thể gán nó cho một biến khác, ví dụ: Khi đó, bạn gọi
Ví dụ: Hàm callbackVì bản chất hàm là một giá trị, nên bạn có thể truyền hàm vào một hàm khác. Ví dụ mình cần viết một hàm
Code triển khai hàm Trong ví dụ trên, hàm confirm bật ra một hộp thoại hỏi người dùng "Bạn muốn tiếp tục thực hiện chương trình không?". Nếu người dùng chọn OK thì giá trị của Ở đây, hai tham số
Trong ví dụ trên, mình viết định nghĩa hai hàm Vì thực tế là hai hàm
So sánh function expression với function declarationĐọc đến đấy chắc bạn cũng đã khá hiểu về biểu thức hàm rồi phải không? Sau đây, mình cùng xem những điểm khác nhau giữa biểu thức hàm (function expression) và định nghĩa hàm (function declaration). ► Cú pháp khai báo: Function declaration: là hàm được định nghĩa độc lập, không nằm trong biểu thức hay câu lệnh nào cả. Function expression: là hàm được định nghĩa với một biểu thức, sử dụng toán tử gán ► Thời gian khởi tạo: Function declaration: hàm được xử lý sớm hơn vị trí mà hàm được định nghĩa. Nghĩa là bạn có thể gọi hàm trước khi định nghĩa hàm. Function expression: hàm được tạo ra tại thời điểm chương trình thực thi xử lý tới đó. Nghĩa là bạn không thể gọi biểu thức hàm trước khi định nghĩa nó. Ví dụ sau bị lỗi cú pháp: ► Phạm vi của function declaration và function expression: Khi sử dụng strict mode, function declaration có phạm vi trong block. Bạn có thể gọi hàm ở bất kỳ đâu trong block đó, nhưng không sử dụng được ở bên ngoài. Ví dụ sau bị lỗi cú pháp: Bởi vì hàm Để sử dụng hàm
Nên viết hàm theo function declaration hay function expression? Câu trả lời là: tùy bạn. Tùy thuộc vào phong cách và mục đích của bạn mà lựa chọn cho phù hợp. Tuy nhiên, theo quan điểm cá nhân thì mình thấy dùng function declaration sẽ dễ nhìn hơn. Ngoài ra, function declaration còn giúp bạn thoải mái hơn trong việc cấu trúc code (không phụ thuộc nhiều vào thứ tự code). Tổng kếtBản chất của hàm là giá trị. Vì vậy, bạn có thể thoải mái gán, sao chép và truyền một hàm vào hàm khác dạng tham số. Khi một hàm được định nghĩa độc lập thì đó gọi là "function declaration". Ngược lại, khi một hàm được định nghĩa bên trong một biểu thức, đó gọi là "function expression". Khi một hàm được truyền vào bên trong hàm khác để gọi lại khi cần thiết, hàm đó được gọi là "hàm callback". Function declaration được xử lý trước khi chương trình chạy đến đó. Function declaration có phạm vi trong block, nên bạn có thể gọi hàm ở bất kỳ đâu trong block. Function expression được tạo ra tại thời điểm chương trình chạy đến vị trí khởi tạo hàm. Nên bạn chỉ gọi được hàm sau khi đã khởi tạo. ★ Nếu bạn thấy bài viết này hay thì hãy theo dõi mình trên Facebook để nhận được thông báo khi có bài viết mới nhất nhé:
Chia sẻ: Bình luận |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |