⊗jsPmFNIF 247 of 505 menu

Вложени функции в JavaScript

Нека имаме функция, която приема като параметър две числа и връща сумата от квадратите на тези числа:

function func(num1, num2) { return num1 * num1 + num2 * num2; } console.log(func(2, 3)); // ще изведе 13 (резултат 2 * 2 + 3 * 3)

Нека операцията повдигане на квадрат я изнесем в помощна функция square:

function square(num) { return num * num; } function func(num1, num2) { return square(num1) + square(num2); } console.log(func(2, 3)); // ще изведе 13

Да приемем, че сме сигурни, че функцията square ще се използва само във функцията func и никъде другаде.

В този случай би било удобно да направим така, че никой случайно да не я използва (вие самите или друг програмист, работещ заедно с вас).

В JavaScript има елегантно решение: може нашата помощна функция square да поставим вътре в func. В този случай нашата помощна функция ще бъде достъпна само вътре в func, а отвън - няма да бъде.

Нека направим това:

function func(num1, num2) { function square(num) { return num * num; } return square(num1) + square(num2); } console.log(func(2, 3)); // ще изведе 13

Опит да се извика square отвън func ще доведе до грешка:

function func(num1, num2) { function square(num) { return num * num; } return square(num1) + square(num2); } console.log(square(2)); //!! ще даде грешка

Направете функция func, която с параметри ще приема две числа, а ще връща сумата от квадрата на първото число с куба на второто число. Направете за това помощна функция square, повдигаща число на квадрат, и помощна функция cube, повдигаща число на куб.

Български
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ʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне