Приветствую. Извиняюсь, если тема уже была (что наверняка, только я найти/понять не смог). Гугл мне тоже бегло не помог, обычно я всегда все находил сам. Пишу впервые, так как сам понимаю занятость людей. Вопрос такой: как засунуть в глобальную переменную локальную функцию, если в родительской функции есть НЕСКОЛЬКО дочерних равноправных функций?
Простой пример (сорян, вашим автокодом так и не воткнул, как пользоваться).
Вот пример.
function counter(){
a = 5;
function x(){
a++;
console.log(a);
}
function y(){
a --;
console.log(a);
}
}
counter()
Мне нужно трижды запустить функцию y(). Я знаю, как это сделать локально (вот так).
function counter(){
a = 5;
function x(){
a++;
console.log(a);
}
function y(){
a--;
console.log(a);
}
y();
y();
y();
}
counter()
Знаю, как вставить в переменную ЕДИНСТВЕННУЮ функцию из родительской функции. Вот так:
function counter(){
a = 5;
return function y(){
a--;
console.log(a);
}
}
var value = counter();
value();
value();
value();
Но этот трюк работает лишь, если функция одна единственная в родительской функции. А у меня в верхнем самом примере две функции (х и у) в родительской. Собственно, вопрос озвучил - нужна глобальная переменная, содержащая функцию y(). Подскажите, пожалуйста. Баньте меня, если я совсем налажал. Полтора месяца изучаю программирование самостоятельно. Простые вопросы быстро гуглятся, а вот более специфические - нет. Спасибо всем откликнувшимся. Сорян за длиннопост. Надеюсь, показал, что сам частично смог разобраться.