zdefiniuj funkcję w innej funkcji w javascript

<code>function foo(a) {
    if (/*some condition*/) {
        // perform task 1
        // perform task 3
    }
    else {
        // perform task 2
        // perform task 3
    }
}
</code>

Mam funkcję, której struktura jest podobna do powyższej. Chcę abstrakcjęzadanie 3 w funkcję,bar(), ale chcę ograniczyć dostęp tej funkcji tylko do zakresufoo(a).

Aby osiągnąć to, czego chcę, czy należy zmienić na następujące?

<code>function foo(a) {
    function bar() {
        // perform task 3
    }

    if (/*some condition*/) {
        // perform task 1
        bar();
    }
    else {
        // perform task 2
        bar();
    }
}
</code>

Jeśli powyższe jest poprawne, tobar() za każdym razem przedefiniowaćfoo(a) zostaje wezwany? (martwiąc się o marnotrawstwo zasobów procesora tutaj)

questionAnswers(4)

yourAnswerToTheQuestion