Trước JavaScript 1. 2, định nghĩa hàm chỉ được phép trong mã toàn cầu cấp cao nhất, nhưng JavaScript 1. 2 cũng cho phép các định nghĩa hàm được lồng trong các hàm khác. Tuy nhiên, có một hạn chế là định nghĩa hàm có thể không xuất hiện trong các vòng lặp hoặc điều kiện. Những hạn chế về định nghĩa hàm này chỉ áp dụng cho các khai báo hàm với câu lệnh hàm
Như chúng ta sẽ thảo luận sau trong chương tiếp theo, các ký tự hàm [một tính năng khác được giới thiệu trong JavaScript 1. 2] có thể xuất hiện trong bất kỳ biểu thức JavaScript nào, có nghĩa là chúng có thể xuất hiện trong if và các câu lệnh khác
Ví dụ
Hãy thử ví dụ sau để tìm hiểu cách triển khai các hàm lồng nhau
Click the following button to call the function
Use different parameters inside the function and then try...
đầu ra
Thường thì nhiều người nhầm lẫn về hàm lồng nhau trong JavaScript, tại sao hàm lồng nhau lại hữu ích và trường hợp sử dụng hàm lồng nhau là gì?
Trong bài viết này, tôi muốn nói về những điều cơ bản về lý do tại sao các hàm lồng nhau lại hữu ích theo nhiều cách
Tôi sẽ bắt đầu hỏi một số câu hỏi cơ bản cùng với một số ràng buộc để có thể giúp suy nghĩ khác đi để giải quyết vấn đề. Giả sử rằng chúng ta có mảng nhân viên như bên dưới
const employee = [
{ id: 1, name: "Raja", age: 28, status: "active" },
{ id: 2, name: "Andy", age: 32, status: "Inactive" },
{ id: 3, name: "Kumar", age: 45, status: "active" },
{ id: 4, name: "Charles", age: 35, status: "Inactive" },
];
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Trường hợp sử dụng 1 #
Làm cách nào để bạn sắp xếp một mảng theo thuộc tính [tuổi, trạng thái, v.v.]?
Hạn chế. Không chuyển một mảng làm tham chiếu đến bất kỳ chức năng nào khác và chức năng sẽ được tái sử dụng nhiều hơn
Thông thường, với kiến thức lập trình trước đây của chúng tôi, chúng tôi sắp xếp bằng cách sử dụng Array. nguyên mẫu. sắp xếp chức năng như dưới đây
function sortBy[array, propName] {
return array.sort[function [a, b] {
if [a[propName] > b[propName]] {
return 1;
} else if [a[propName] b[propName]] { // propName accessible from highorder function
return 1;
} else if [a[propName]