⊗jsPmFNIF 247 of 505 menu

Hàm lồng nhau trong JavaScript

Giả sử chúng ta có một hàm nhận vào tham số là hai số và trả về tổng bình phương của hai số đó:

function func(num1, num2) { return num1 * num1 + num2 * num2; } console.log(func(2, 3)); // sẽ in ra 13 (kết quả của 2 * 2 + 3 * 3)

Hãy tách phép tính bình phương ra một hàm phụ square:

function square(num) { return num * num; } function func(num1, num2) { return square(num1) + square(num2); } console.log(func(2, 3)); // sẽ in ra 13

Giả sử chúng ta chắc chắn rằng hàm square sẽ chỉ được sử dụng trong hàm func mà không dùng ở bất kỳ nơi nào khác.

Trong trường hợp này, sẽ rất tiện nếu làm sao để không ai vô tình sử dụng nó (chính bạn hoặc một lập trình viên khác đang làm việc cùng với bạn).

JavaScript có một giải pháp tinh tế: có thể đặt hàm phụ square của chúng ta vào bên trong func. Khi đó hàm phụ của chúng ta sẽ chỉ có thể truy cập được bên trong func, còn từ bên ngoài - thì không.

Hãy thực hiện điều này:

function func(num1, num2) { function square(num) { return num * num; } return square(num1) + square(num2); } console.log(func(2, 3)); // sẽ in ra 13

Việc thử gọi square từ bên ngoài func sẽ dẫn đến lỗi:

function func(num1, num2) { function square(num) { return num * num; } return square(num1) + square(num2); } console.log(square(2)); //!! sẽ báo lỗi

Tạo một hàm func, nhận vào các tham số là hai số, và trả về tổng bình phương của số thứ nhất với lũy thừa ba của số thứ hai. Để làm điều này, hãy tạo hàm phụ square để tính bình phương của một số, và hàm phụ cube để tính lũy thừa ba của một số.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối