Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.11.2013, 13:08
Интересующийся
Отправить личное сообщение для gh321 Посмотреть профиль Найти все сообщения от gh321
 
Регистрация: 14.02.2011
Сообщений: 23

Вызов функции через цикл
Есть несколько функций
q_1(){};

q_2(){};
...
q_10(){};

Почему так так нельзя вызвать?
for(var i=2;i<11;i++)
	{
	
       if(j==i)
	   q_'+i+'();
           //q_.'+i+'.(); - это то же не работает
		
        
	}

Название функции это не строка, понятно,но как реализовать вызов через цикл таких функций

Последний раз редактировалось gh321, 13.11.2013 в 13:22.
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2013, 13:17
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

наверное потому что q_1 != question_1 ))
ну и для вызова функции есть eval
function q_1 () {
	console.log (1);
}

function q_2 () {
	console.log (2);
}


for(var i=1;i<3;i++){
   eval ("q_"+i+"()");
}
Ответить с цитированием
  #3 (permalink)  
Старый 13.11.2013, 13:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,134

Сообщение от animhotep
для вызова функции есть eval
не пиши тут такого!

Альтернатива на лицо!

var fnc=[];
fnc[0]=function (){alert(0)};
fnc[1]=function (){alert(1)};
fnc[2]=function (){alert(2)};
for (var i=0; i<fnc.length; i++) {
   fnc[i]();
};
Ответить с цитированием
  #4 (permalink)  
Старый 13.11.2013, 13:25
Интересующийся
Отправить личное сообщение для gh321 Посмотреть профиль Найти все сообщения от gh321
 
Регистрация: 14.02.2011
Сообщений: 23

animhotep
question опечатка конечно .
В остальном спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 13.11.2013, 13:27
Интересующийся
Отправить личное сообщение для gh321 Посмотреть профиль Найти все сообщения от gh321
 
Регистрация: 14.02.2011
Сообщений: 23

Сообщение от ksa Посмотреть сообщение
не пиши тут такого!

Альтернатива на лицо!

var fnc=[];
fnc[0]=function (){alert(0)};
fnc[1]=function (){alert(1)};
fnc[2]=function (){alert(2)};
for (var i=0; i<fnc.length; i++) {
   fnc[i]();
};
А почему с eval не корректно ?
Ответить с цитированием
  #6 (permalink)  
Старый 13.11.2013, 13:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,134

Сообщение от gh321
А почему с eval не корректно ?
Это тут не приветстуется...

В любом случае, если есть отличная альтернатива - зачем колхозить?
Ответить с цитированием
  #7 (permalink)  
Старый 13.11.2013, 14:10
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

я слышал что eval это зло) но, думаю, тс-у на это глубоко накакать
все начинают с "абы работало", потом каждый сам решит что зло а что нет
Ответить с цитированием
  #8 (permalink)  
Старый 13.11.2013, 14:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,134

Сообщение от animhotep
я слышал что eval это зло
Я так его не позиционирую...
Ответить с цитированием
  #9 (permalink)  
Старый 13.11.2013, 14:32
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Мда уж

function q_1 () {
	console.log (1);
}

function q_2 () {
	console.log (2);
}

for(var i=1; i<3; i++) window['q' + i]();
Ответить с цитированием
  #10 (permalink)  
Старый 19.08.2016, 20:55
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Здравствуйте KSA! Не получаеться загружать и подсчтитывать количество фреймов по мере их загрузки.
Хочу переходить на загрузку следующего ифрейма только по событию готовности прежнего- onload.Использовал конструкцию <iframe id="ifrm" src="demo.html" onload="doSomething()"></iframe> Исправно выдает алерт: onload=alert("Yes!") но передать это в инкримент-мучаюсь уже 4 дня:
var i=0;
while (i< 9)
{
iframe.onload = function() {
alert('!!!!');
i++;
www.document.write('<iframe width="700" height="700" src="'+linksarray[i].href+'"> </iframe> ');

var iframe = www.document.getElementsByTagName('iframe')[0];

};
};
................ПОМОГИТЕ ПОЖАЙЛУСТА...............
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов конкретной функции класса на php AJAX запросом Slavenin AJAX и COMET 8 03.06.2011 22:47
Вызов функции (Sandr) AJAX и COMET 12 16.03.2011 10:43
Вызов функции TicTac Общие вопросы Javascript 2 24.01.2011 23:35
Цикл функции в JS Nikitos* Общие вопросы Javascript 2 31.03.2009 19:51
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44