Hàm lồng nhau không được xác định JavaScript
Các hàm lồng trong JavaScript là các loại hàm được xác định trong một hàm khác. Một hoặc nhiều chức năng có thể được thêm vào bên trong một chức năng và phạm vi của các chức năng bên ngoài bao gồm các chức năng lồng nhau hoặc bên trong này. Các hàm bên ngoài còn được gọi là các hàm Cha và các hàm bên trong có thể được đặt tên là các hàm Con trong các hàm lồng nhau của JavaScript. Các biến và tham số của hàm cha có thể truy cập được đối với hàm con, trong khi hàm cha không thể truy cập các biến được khai báo bên trong các hàm con Show
Bài viết này đã thảo luận về Hàm lồng nhau trong JavaScript. Ngoài ra, chúng tôi cũng đã giải thích phạm vi biến, Tham số và câu lệnh trả về của các hàm lồng nhau với sự trợ giúp của các ví dụ Các hàm lồng nhau trong JavaScriptTrong JavaScript, một hàm lồng nhau là một hàm được xác định bên trong hoặc bên trong một hàm khác. Quy trình tạo hàm lồng cũng giống như quy trình tạo hàm bình thường, nhưng để tạo hàm lồng, chúng ta phải xác định hàm mới hoặc hàm con bên trong hàm cha Đây là cú pháp của JavaScript Nested functions Hàm Hàm cha ()//định nghĩa hàm< Như bạn có thể thấy từ cú pháp, chúng ta phải định nghĩa hàm con() trong hàm cha mẹ(). Ngoài ra, khi chúng ta muốn gọi hàm con(), chúng ta phải gọi nó trong phần thân của hàm cha mẹ() Ví dụ. Sử dụng các hàm lồng nhau trong JavaScriptVí dụ này sẽ chỉ cho bạn cách tạo các hàm JavaScript lồng nhau. Với mục đích này, chúng ta sẽ định nghĩa một hàm cha có tên là “addNum()”, hàm này có hai tham số là “x” và “y”. Sau khi làm như vậy, chúng ta sẽ tạo một hàm con “showMessage()” để in một tin nhắn văn bản ra cửa sổ giao diện điều khiển function addNum ( x ,y) Lưu ý rằng chúng ta đã gọi hàm “showMessage()” bên trong định nghĩa hàm của hàm “addNum()”. Trong bước tiếp theo, chúng ta sẽ gọi hàm cha addNum() trong khi truyền “5” và “6” làm đối số addNum (5,6) Như bạn có thể thấy từ đầu ra, chúng ta đã thực hiện thành công các hàm lồng nhau trong ví dụ của mình Phạm vi biến của Hàm lồng nhau trong JavaScriptBây giờ, hãy nói về phạm vi của các hàm lồng nhau trong JavaScript. Các chức năng lồng nhau có phạm vi riêng của chúng; . Bạn nên ghi nhớ hai điểm về phạm vi biến của các hàm lồng trong JavaScript. Một hàm lồng nhau là riêng tư đối với hàm mẹ của nó và một hàm lồng nhau có quyền truy cập vào phạm vi của hàm mẹ Chúng tôi sẽ giải thích từng câu đã cho với sự trợ giúp của các ví dụ Như chúng tôi đã nói, hàm lồng nhau được coi là “riêng tư” đối với hàm chứa định nghĩa của nó. Điều đó có nghĩa là chỉ hàm cha hoặc hàm chứa mới có thể truy cập hàm lồng nhau và bạn sẽ không được phép truy cập nó bên ngoài hàm đã chỉ định. Điều này xảy ra bởi vì chúng tôi đã xác định chức năng bên trong bên trong phạm vi chức năng bên ngoài Chẳng hạn, chúng ta đã định nghĩa một hàm bên ngoài “AddNumber()” trong mã được cung cấp bên dưới và sau đó thêm hàm bên trong “showMessage()” vào trong định nghĩa của hàm bên ngoài hàm addNumber ( x ,y) Bây giờ, khi chúng ta cố gắng truy cập hàm bên trong “showMessage()” bên ngoài phạm vi của nó, nó sẽ đưa ra lỗi “Uncaught ReferenceError” showMessage ('20'); Tất cả các hàm, biến và đối số được xác định trong hàm bên ngoài đều có thể truy cập được đối với hàm lồng nhau đã tạo. Khả năng này được gọi là “Phạm vi từ vựng”, trong đó hàm bên trong có thể truy cập phạm vi của hàm gốc hoặc hàm bên ngoài Chúng tôi sẽ không chuyển bất kỳ đối số nào cho hàm bên trong showMessage() của chúng tôi trong ví dụ dưới đây. Những gì chúng ta sẽ làm là sử dụng các đối số “x” và “y” của hàm ngoài “addNumber()” và biến “sum” hàm addNumber ( x ,y) Bây giờ, chúng ta sẽ gọi hàm bên ngoài “AddNumber()” và chuyển “4” và “6” làm đối số addNumber (4,6) Hãy xem kết quả được cung cấp bên dưới, điều này biểu thị rằng chúng ta đã truy cập thành công biến “sum”, đối số “x” và “y” của hàm bên ngoài addNumber trong hàm showMessage() Trả về một hàm lồng JavaScriptHàm bên ngoài có khả năng trả về hàm lồng nhau. Chẳng hạn, trong ví dụ dưới đây, hàm displayCounter() có một biến “đếm” và trả về hàm bên trong increment() function displayCounter () { Chúng tôi sẽ lưu trữ chức năng displayCounter() trong “bộ đếm” trong bước tiếp theo. Bây giờ, khái niệm chúng ta cần thảo luận ở đây là hàm “increment()” vẫn sẽ có quyền truy cập vào thuộc tính “count” của hàm “displayCounter()” khi displayCounter() hoàn thành việc thực thi. “Đóng cửa”, một tính năng của JavaScript, giúp điều này trở nên khả thi Ở đây, thuộc tính “count” là cục bộ của hàm “displayCounter()”, tuy nhiên, hàm “increment” đã xác định cũng có thể truy cập nó vì nó được lồng bên trong hàm “displayCounter()” bộ đếm = bộ đếm hiển thị () Đoạn mã trên sẽ gọi hàm “displayCounter()”. Sau đó, hàm displayCounter() trước tiên sẽ khởi tạo biến “count” thành giá trị “0” và sau đó trả về hàm “increment()”. Vì thuộc tính “count” không bị hủy nên khi chúng ta gọi hàm gia tăng thông qua “counter()” thì mỗi lần thuộc tính “count” sẽ được tăng lên theo đoạn mã được thêm vào bảng điều khiển. log( bộ đếm () . ); Kiểm tra đầu ra dưới đây của ví dụ được cung cấp Các tham số của các hàm lồng nhau trong JavaScriptHàm bên trong cũng có thể nhận đối số. Chẳng hạn, trong ví dụ sau, “hàm bên trong ()” được trả về bởi “hàm bên ngoài ()” và mỗi hàm trong số chúng chấp nhận một bộ đối số hàm hàm ngoài ( x ) { Để có được hàm bên trong (), chúng ta sẽ thêm đoạn mã sau vào chương trình JavaScript của mình trong khi chuyển “3” làm đối số cho hàm bên ngoài () Hàm bên trong = Hàm ngoài (3); Sau đó, chúng ta sẽ gọi hàm innerFunction() với giá trị “7” làm đối số Hàm bên trong (7); Bạn cũng có thể chuyển đối số cho cả hàm bên ngoài và bên trong cùng một lúc chức năng bên ngoài (2)(3); Cả hai dòng mã được chỉ định đều gọi hàm bên trong () và xuất các đối số đã truyền Phần kết luậnJavaScript cho phép bạn sử dụng các hàm lồng nhau trong chương trình mà không gặp lỗi. Hàm con hoặc hàm bên trong có thể được thêm vào bên trong hàm bên ngoài trong JavaScript. Tất cả các biến cục bộ, toàn cục của hàm bên ngoài đều có thể truy cập được đối với hàm bên trong. Trong trường hợp của hàm bên ngoài, chỉ có thể truy cập các giá trị thuộc tính toàn cầu cũng như các phương thức và biến được xác định trong các hàm cha. Bài viết này đã thảo luận về Hàm lồng nhau trong JavaScript. Ngoài ra, chúng tôi cũng đã giải thích phạm vi biến, thuộc tính Đóng, Phạm vi từ vựng, Tham số và câu lệnh trả về của các hàm lồng nhau trong JavaScript, với sự trợ giúp của các ví dụ Chức năng lồng nhau có được phép trong JavaScript không?JavaScript cho phép lồng các hàm và cấp cho hàm bên trong toàn quyền truy cập vào tất cả các biến và hàm được xác định bên trong hàm bên ngoài (và tất cả các biến và hàm khác mà hàm bên ngoài .
Làm cách nào để sử dụng hàm lồng nhau trong JavaScript?Các hàm lồng nhau trong JavaScript. . Viết một hàm bên trong một hàm khác Thực hiện cuộc gọi đến hàm bên trong trong câu lệnh trả về của hàm bên ngoài Gọi nó là fun(a)(b) trong đó a là tham số của hàm ngoài và b là hàm trong Cuối cùng trả về đầu ra kết hợp từ hàm lồng nhau Tại sao chức năng JavaScript của tôi không được xác định?Một biến chưa được gán giá trị là kiểu không xác định. Một phương thức hoặc câu lệnh cũng trả về không xác định nếu biến đang được đánh giá không có giá trị được gán. Hàm trả về giá trị không xác định nếu giá trị không được trả về .
Các định nghĩa hàm có thể được lồng vào nhau không?Chúng ta có thể khai báo một hàm bên trong một hàm, nhưng đó không phải là hàm lồng nhau . Vì các định nghĩa hàm lồng nhau không thể truy cập các biến cục bộ của các khối xung quanh, chúng chỉ có thể truy cập các biến toàn cục của mô-đun chứa. |