Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   часть имени функции в переменной (https://javascript.ru/forum/misc/51823-chast-imeni-funkcii-v-peremennojj.html)

krutoy 21.11.2014 19:19

Цитата:

Сообщение от bes
упс

Это конкурс на лучший бредокод? Объекта window[name+"_func"] не существует в этом случае. Что сказать то хотел? или что-то непонятно в вопросах лексической области видимости переменных? Спросить стесняешься?

Dim@ 21.11.2014 19:52

krutoy, про "упс" бес написал, что без засорения window, твой способ не сработает

bes 21.11.2014 19:55

Цитата:

Сообщение от krutoy
Что это? Вы просто дублируете код.

нет, там отличие в одной строчке

Цитата:

Сообщение от krutoy
В вашем случае можно сразу эти функции обычным образом создавать. В вашем случае эти сборки не имеют никакого смысла.

Цитата:

Сообщение от krutoy
Что написал? В моем случае eval выполняет строку. Зачем эвалить скомпилированную функцию, если ее и так можно вызвать?

смысл там только в том как вызвать функцию, имея на руках только строку её имени, именно этого не хватало ТС, чтобы решить свою задачу самостоятельно
если ты ждал большего, то твои ожидания не оправдались, мир жесток, а жизнь - го-но

Цитата:

Сообщение от krutoy
Это конкурс на лучший бредокод? Объекта window[name+"_func"] не существует в этом случае. Что сказать то хотел? или что-то непонятно в вопросах лексической области видимости переменных? Спросить стесняешься?

к тому, что не нужно плодить глобальных переменных, а также к тому, что window-способ ограничен в применении

krutoy 21.11.2014 21:15

Цитата:

Сообщение от bes
что не нужно плодить глобальных переменных

Ну так замени window на любой объект. Что за детсад. Мне надоело, прекращаю диалог.

bes 21.11.2014 21:25

Цитата:

Сообщение от krutoy
Ну так замени window на любой объект. Что за детсад. Мне надоело, прекращаю диалог.

замени голову на ж-пу, что получится, всё правильно, мозг рано или поздно вытечет :D

kostyanet 23.11.2014 12:47

Цитата:

Сообщение от ild
Не могу сообразить, как вызвать эту функцию?
Типа:
name+'_myfunc'();

Глобально так не делают. Делают локальный namespace и через него все получают. Выше уже было. Суете в объект с именем - получаете тот самый namespace и вперде[prefix+'_func'](){}.

Типовой пример

if(typeof _validate[input.type]!=='undefined')
		_validate[input.type]();
	else
		_validate.text();


Часовой пояс GMT +3, время: 09:41.