Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызов функции через цикл (https://javascript.ru/forum/misc/42892-vyzov-funkcii-cherez-cikl.html)

gh321 13.11.2013 13:08

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

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

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

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

animhotep 13.11.2013 13:17

наверное потому что 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+"()");
}

ksa 13.11.2013 13:24

Цитата:

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

не пиши тут такого! :nono:

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

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]();
};

gh321 13.11.2013 13:25

animhotep
question опечатка конечно .
В остальном спасибо

gh321 13.11.2013 13:27

Цитата:

Сообщение от ksa (Сообщение 280794)
не пиши тут такого! :nono:

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

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 не корректно ?

ksa 13.11.2013 13:28

Цитата:

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

Это тут не приветстуется... :D

В любом случае, если есть отличная альтернатива - зачем колхозить? ;)

animhotep 13.11.2013 14:10

я слышал что eval это зло) но, думаю, тс-у на это глубоко накакать
все начинают с "абы работало", потом каждый сам решит что зло а что нет

ksa 13.11.2013 14:13

Цитата:

Сообщение от animhotep
я слышал что eval это зло

Я так его не позиционирую... :D

ruslan_mart 13.11.2013 14:32

Мда уж :)

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

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

for(var i=1; i<3; i++) window['q' + i]();

Андрей38 19.08.2016 20:55

Здравствуйте 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];

};
};
................ПОМОГИТЕ ПОЖАЙЛУСТА...............


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