1

Тема: JS: Передача значения в функцию

i =0;
function fun(a, b)
    {
    i++;
    if (i <= 10)
        {
        x = b + i; y = a + 3;
        WScript.Echo("---" + b);                      // почему b меняет значение?!
        fun(x, y)
        }
    else
        {
        return WScript.Echo(b);
        }
    }

fun(11, 7);

Не могу понять, почему в данном примере переменная b меняет значение и каким образом это происходит. Собственно вопрос возник поскольку необходимо было использовать в функции значение переданное при вызове, т.е. эту "7", уже после того как функция вызывала сама себя. Вот не получается как-то запомнить это значение.

2

Re: JS: Передача значения в функцию

почему b меняет значение?!

Потому что функция fun рекурсивно вызывается с разными значениями a и b.

( 2 * b ) || ! ( 2 * b )

3

Re: JS: Передача значения в функцию

как можно сохранить этот параметр переданный при первом вызове "7"? есть какой метод?

4

Re: JS: Передача значения в функцию

Переписать всё. Объясните алгоритм, он совершенно непонятный. Вы рекурсивно меняете аргумент функции, но хотите его сохранить. Это как?

( 2 * b ) || ! ( 2 * b )

5

Re: JS: Передача значения в функцию

Алгоритм, который я привёл выше, он просто для примера, сам по себе ничего не значит, просто искал метод, как можно сохранить первоначально переданный аргумент функции, после её неоднократного рекурсивного вызова.... думал есть "лазейка" мне не известная. Для чего это надо было, напишу как доработаю...

6

Re: JS: Передача значения в функцию

О_О если первоначально переданный аргумент не будет меняться, то и рекурсия работать не будет...
А лазейки - да, лазейки есть. Одна из них называется, кажется, "областью видимости переменной".

7

Re: JS: Передача значения в функцию

это мне было надо, чтоб вот этот алгоритм написать: http://forum.script-coding.com/viewtopi … 654#p71654. вроде как-то коряво, но нашёл способ...