Hướng dẫn can a function return another function in javascript? - một hàm có thể trả về một hàm khác trong javascript không?
Đoạn trích một: Show
Câu lệnh 'B ()' có nghĩa là thực thi hàm có tên 'B' hiển thị hộp thoại với văn bản 'B!' Câu lệnh 'Trả về B ();' có nghĩa là thực thi một hàm có tên 'B' và sau đó trả về chức năng 'B' trả về. Nhưng 'B' không trả lại gì, sau đó câu lệnh này 'trả về b ()' không trả về không có gì cả. Nếu b () trả về một số, thì ‘return b () cũng là một số. Bây giờ 's' được gán giá trị của những gì 'A ()' trả về, trả về 'b ()', không có gì, vì vậy 's' không là gì (trong JavaScript, đó thực sự là một điều, đó là một 'không xác định'. Khi bạn yêu cầu JavaScript giải thích kiểu dữ liệu 'S' là gì, trình thông dịch JavaScript sẽ cho bạn biết 'S' là một không xác định.) Vì 'S' là một người không xác định, khi bạn yêu cầu JavaScript thực thi câu lệnh này 's ()', Bạn đang yêu cầu JavaScript thực thi một hàm có tên là 'S', nhưng 'S' Đây là một 'không xác định', không phải là một hàm, vì vậy JavaScript sẽ phàn nàn, "Này, S không phải là một chức năng, tôi không biết làm thế nào Để làm với S này ", sau đó là một thông báo lỗi" Kiểu chưa bị bắt: S không phải là hàm "sẽ được JavaScript hiển thị (được thử nghiệm trong Firefox và Chrome) Đoạn mã hai
Bây giờ, hàm 'A' Trả lại một con trỏ/bí danh cho một hàm có tên là 'B'. Vì vậy, khi thực thi 's = a ()', 's' sẽ nhận được một giá trị trỏ đến b, tức là 's' là một bí danh của 'B' bây giờ, gọi 'S' bằng với gọi 'B'. tức là 's' là một chức năng bây giờ. Thực thi 's ()' có nghĩa là chạy hàm 'B' (giống như thực thi 'B ()'), một hộp thoại hiển thị 'B!' sẽ xuất hiện (tức là chạy 'cảnh báo (' b! '); câu lệnh trong hàm' b ') Đây là phần 6 của loạt chức năng JavaScript của tôi
Từ kinh nghiệm của riêng tôi, tôi có thể nói rằng sự trở lại của các chức năng từ các chức năng gây ra những khó khăn lớn nhất cho người mới bắt đầu. Và vấn đề không phải là sự trở lại rất phức tạp, nhưng lúc đầu, rất khó để hiểu tại sao điều này có thể cần thiết. Trong cuộc sống thực, kỹ thuật này thường được sử dụng, cả trong JS và nhiều ngôn ngữ khác. Các chức năng chấp nhận các chức năng trả về các chức năng là phổ biến cho bất kỳ mã JS nào. Hãy bắt đầu: Các chức năng là cùng một dữ liệu với các số hoặc chuỗi, vì vậy các hàm có thể được truyền đến các chức năng khác như các đối số, cũng như được trả về từ các chức năng. Chúng ta thậm chí có thể xác định một hàm bên trong một chức năng khác và trả về bên ngoài. Và điều này không đáng ngạc nhiên. Hằng số có thể được tạo ra ở bất cứ đâu. Bạn thậm chí có thể làm mà không cần tạo ra một hằng số: Luôn luôn, khi bạn thấy các cuộc gọi như vậy Bây giờ, hãy để xem cách khác để mô tả chức năng Để rõ ràng, bạn có thể đặt dấu ngoặc: Định nghĩa chức năng có sự kết hợp đúng đắn. Tất cả mọi thứ nằm ở bên phải của Hàm tương tự có thể được biểu diễn theo một cách khác nhau, bằng cách loại bỏ từng hàm trong hằng số của chính nó. Phương pháp này hữu ích như một thử nghiệm suy nghĩ, để hiểu nơi một kết thúc và một hàm khác bắt đầu, nhưng bản thân nó sẽ không hoạt động, bởi vì việc đóng cửa bị mất. Hãy để cố gắng đi qua các cuộc gọi chức năng ở trên để hiểu kết quả thu được như thế nào. Sau mỗi cuộc gọi (ngoại trừ ngày cuối cùng), một hàm mới được trả về, trong đó giá trị từ hàm bên ngoài được thay thế bằng cách đóng. Như đã thấy ở trên Hãy để viết ra tất cả các chức năng:
Hãy cùng cố gắng phát triển ý tưởng về chức năng 3 từ bài học trước. Chúng ta hãy viết một hàm 4 đó không áp dụng chức năng ngay lập tức, nhưng tạo ra một hàm mới.Hàm 4Takes một hàm như một đối số và trả về một hàm mới. Bên trong chức năng mới, chức năng ban đầu được gọi là hai lần:Tạo một hàm 6. Nó sẽ là hàm mà nó trả về 4 nếu bạn chuyển nó một hàm ____ 18 (nó tính toán căn bậc hai của số).Hóa ra ________ 16- Đây là một hàm lấy một số và trả về gốc của gốc - Một ví dụ khác: Hãy để Lừa vượt qua chức năng 4New cho chức năng một cách nhanh chóng mà không tạo ra nó trước. Hàm truyền bình phương số.Hàm bây giờ Hàm 4HAs một cái tên như một lý do. Thực tế là việc trả về một hàm mỗi lần tạo ra một hàm mới với mỗi cuộc gọi, ngay cả khi các cơ thể của các hàm này giống nhau:Do đó, về bất kỳ chức năng nào trả về một hàm, bạn có thể nói rằng nó tạo ra một hàm. Nó khá đơn giản để nhớ, nếu bạn nghe hoặc đọc ở đâu đó rằng các chức năng đang được tạo ra, thì ai đó sẽ trả lại chúng. Ngắn mạchCông việc của hầu hết các ví dụ được mô tả dựa trên một tài sản thú vị có tên là đóng cửa. Khi Nhưng chức năng được trả về Hàm được trả lại từ Hãy tưởng tượng rằng chúng tôi đang thiết kế một hệ thống mà bạn cần nhớ mật khẩu của người dùng và sau đó kiểm tra khi người dùng đăng nhập lại. Bạn có thể mô phỏng một hàm Đây là cách mã hàm trông giống như Một hàm có thể trả về một hàm khác JS không?Các chức năng là cùng một dữ liệu với các số hoặc chuỗi, vì vậy các hàm có thể được truyền đến các chức năng khác như các đối số, cũng như được trả về từ các chức năng.Chúng ta thậm chí có thể xác định một hàm bên trong một chức năng khác và trả về bên ngoài.functions can be passed to other functions as arguments, as well as returned from functions. We can even define a function inside another function and return it outside.
Chúng ta có thể trả về một hàm bên trong một hàm không?Bạn có thể lưu trữ chức năng trong một biến.Bạn có thể chuyển chức năng như một tham số cho một hàm khác.Bạn có thể trả về chức năng từ một hàm.You can return the function from a function.
Làm gì === Trả lại trong JavaScript?=== trong JavaScript là gì?=== (Triple Equals) là một toán tử so sánh bình đẳng nghiêm ngặt trong JavaScript, trả về sai cho các giá trị không thuộc loại tương tự.Toán tử này thực hiện đúc loại cho bình đẳng.Nếu chúng ta so sánh 2 với 2 2, sử dụng ===, thì nó sẽ trả về một giá trị sai.false for the values which are not of a similar type. This operator performs type casting for equality. If we compare 2 with “2” using ===, then it will return a false value. |