Khi nào sử dụng hàm lồng nhau trong JavaScript?

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] 

Chủ Đề