Hướng dẫn can i call a function inside another function javascript? - tôi có thể gọi một hàm bên trong một hàm javascript khác không?

Gọi một hàm bên trong một hàm khác #

Để gọi một hàm bên trong một hàm khác, hãy xác định hàm bên trong hàm bên ngoài và gọi nó. Khi sử dụng từ khóa function, hàm được nâng lên trên cùng của phạm vi và có thể được gọi từ bất cứ nơi nào bên trong hàm bên ngoài.

Copied!

function outerFunc[a, b] { function innerFunc[a, b] { return a + b; } const result = innerFunc[a, b]; return result; } console.log[outerFunc[10, 10]]; // 👉️ 20 console.log[outerFunc[10, 20]]; // 👉️ 30

Ví dụ sau đây cho thấy cách chúng ta có thể gọi hàm bên trong trước khi được khai báo. Điều này là do cách nâng cao hoạt động trong JavaScript.

Copied!

function outerFunc[] { const num1 = 5; const num2 = 10; // 👇️ call inner function before it's declared const result = innerFunc[]; function innerFunc[] { return num1 + num2; } return result; } console.log[outerFunc[]]; // 👉️ 15

Điều này chỉ hoạt động cho các chức năng được khai báo bằng cách sử dụng từ khóa function [không phải chức năng mũi tên].

Bạn có thể tưởng tượng rằng tuyên bố của hàm được nâng lên đỉnh của phạm vi, do đó nó có thể được gọi từ bất cứ nơi nào trong phạm vi.

Một cách tiếp cận khác là trả về hàm bên trong từ bên ngoài.

Copied!

function outerFunc[] { function innerFunc[a, b] { return a + b; } return innerFunc; } const innerFunc = outerFunc[]; console.log[innerFunc[2, 3]]; // 👉️ 5 console.log[innerFunc[3, 3]]; // 👉️ 6

Lưu ý rằng chúng tôi đã không sử dụng dấu ngoặc đơn [] để gọi hàm bên trong bên ngoài.

Chúng tôi đã trả lại chức năng mà không cần gọi nó. Nói cách khác, chúng tôi đã trả lại một tham chiếu đến hàm bên trong, không phải là kết quả của việc gọi nó.

Điều này cho phép chúng tôi gọi chức năng bên trong nhiều lần khi cần thiết, chuyển các tham số khác nhau mỗi lần.

Điều hữu ích nhất trong kịch bản này là hàm bên trong nhớ các biến được khai báo ở hàm bên ngoài giữa các lời mời.

Copied!

function outerFunc[] { const z = 100; function innerFunc[a, b] { return a + b + z; } return innerFunc; } const innerFunc = outerFunc[]; console.log[innerFunc[2, 3]]; // 👉️ 105 console.log[innerFunc[3, 3]]; // 👉️ 106

Lưu ý rằng hàm bên trong nhớ lại giá trị của biến z giữa các lần gọi.

Khái niệm này được gọi là đóng cửa trong JavaScript.

Hàm bên trong được gói với các tài liệu tham khảo về trạng thái xung quanh.

Điều này có nghĩa là hàm bên trong có quyền truy cập vào các biến được khai báo bên trong phạm vi của hàm bên ngoài bất cứ lúc nào.

Điều này rất hữu ích trong nhiều kịch bản khác nhau. Ví dụ: bạn có thể chuyển một tham số cho hàm bên ngoài mà nó sẽ nhớ cho bất kỳ cuộc gọi hàm bên trong nào.

Copied!

function outerFunc[a] { function innerFunc[b, c] { return a + b + c; } return innerFunc; } const innerFunc = outerFunc[10]; console.log[innerFunc[1, 1]]; // 12 console.log[innerFunc[1, 2]]; // 13

Chúng tôi đã vượt qua 10 dưới dạng tham số cho hàm bên ngoài và lưu trữ kết quả trong một biến.

Biến

Copied!

function outerFunc[] { const num1 = 5; const num2 = 10; // 👇️ call inner function before it's declared const result = innerFunc[]; function innerFunc[] { return num1 + num2; } return result; } console.log[outerFunc[]]; // 👉️ 15
0 lưu trữ một tham chiếu đến hàm

Copied!

function outerFunc[] { const num1 = 5; const num2 = 10; // 👇️ call inner function before it's declared const result = innerFunc[]; function innerFunc[] { return num1 + num2; } return result; } console.log[outerFunc[]]; // 👉️ 15
0, trong đó biến

Copied!

function outerFunc[] { const num1 = 5; const num2 = 10; // 👇️ call inner function before it's declared const result = innerFunc[]; function innerFunc[] { return num1 + num2; } return result; } console.log[outerFunc[]]; // 👉️ 15
2 trỏ đến giá trị 10.

Bây giờ chúng ta có thể bỏ qua 10 từ các tham số khi gọi hàm bên trong.

Đọc thêm #

  • Cách gọi hàm bên trong một đối tượng trong JavaScript
  • Kiểm tra xem một hàm trả về một lời hứa trong JavaScript

Tôi có thể gọi một hàm từ một hàm khác trong javascript không?

Để gọi một hàm bên trong một hàm khác, hãy xác định hàm bên trong hàm bên ngoài và gọi nó.Khi sử dụng từ khóa chức năng, hàm được nâng lên trên cùng của phạm vi và có thể được gọi từ bất cứ nơi nào bên trong hàm bên ngoài.define the inner function inside the outer function and invoke it. When using the function keyword, the function gets hoisted to the top of the scope and can be called from anywhere inside of the outer function.

Tôi có thể sử dụng một hàm bên trong một hàm trong javascript không?

JavaScript cho phép làm tổ của các hàm và cấp cho hàm bên trong truy cập đầy đủ cho 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 có quyền truy cập]. [and all other variables and functions that the outer function has access to].

Chúng ta có thể gọi một hàm bên trong một chức năng khác không?

Gọi một chức năng từ bên trong được gọi là đệ quy và câu trả lời đơn giản là, vâng. and the simple answer is, yes.

Bài Viết Liên Quan

Chủ Đề