08.03.2010, 03:47
|
|
Профессор
|
|
Регистрация: 20.11.2009
Сообщений: 257
|
|
вызов функции из этой же функции
Возможна ли такая операция?
Именно вызов фунции из этой же функции...start();
function start(){
if(XMLHttpRequestObjectTwo){
XMLHttpRequestObjectTwo.open("GET", "reset.php?data=0");
XMLHttpRequestObjectTwo.onreadystatechange = function(){
if(XMLHttpRequestObjectTwo.responseText=="1"){
getData();
}else{
start();
}
}
XMLHttpRequestObjectTwo.send(null);
}
}
|
|
08.03.2010, 09:03
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Вызов функцией самой себя (рекурсия) — один из фундаментальных принципов программирования.
Конечно же JS разрешает такое.
|
|
08.03.2010, 11:07
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
|
|
08.03.2010, 11:32
|
|
Профессор
|
|
Регистрация: 20.11.2009
Сообщений: 257
|
|
|
|
09.03.2010, 08:35
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от B@rmaley.e><e
|
Вызов функцией самой себя (рекурсия) — один из фундаментальных принципов программирования.
|
Только в данном случае нет рекурсии.
|
|
09.03.2010, 12:37
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
В чистом виде нет, но что-то от нее есть. Все-таки будучи единожды запущенной, она будет запускаться вновь и вновь, пока не получит нужный результат.
|
|
09.03.2010, 13:14
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от B@rmaley.e><e
|
В чистом виде нет, но что-то от нее есть.
|
Что значит что-то есть? Рекурсия или есть или её нет. Тут её нет, т.к. start не сама себя вызывает, а её вызывает безымянная функция, которую start, опять же не вызывает, а только создаёт.
Сообщение от B@rmaley.e><e
|
Все-таки будучи единожды запущенной, она будет запускаться вновь и вновь, пока не получит нужный результат.
|
Странная логика.
|
|
09.03.2010, 17:01
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от Kolyaj
|
Что значит что-то есть? Рекурсия или есть или её нет. Тут её нет, т.к. start не сама себя вызывает, а её вызывает безымянная функция, которую start, опять же не вызывает, а только создаёт.
|
Листаем википедию
Цитата:
|
В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная рекурсия), например, функция A вызывает функцию B, а функция B — функцию A. Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.
|
|
|
09.03.2010, 17:05
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
А теперь читаем моё сообщение ещё раз
Сообщение от Kolyaj
|
а её вызывает безымянная функция, которую start, опять же не вызывает, а только создаёт.
|
|
|
09.03.2010, 18:34
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Функция вызывает метод send, который вызывает onreadystatechange.
|
|
|
|