powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Принцип работы обратной рекурсии
11 сообщений из 11, страница 1 из 1
Принцип работы обратной рекурсии
    #39272164
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Как работает рекурсия понимаю - функция вызывает сама себя до определенного момента. А вот никак не могу понять как работает обратная рекурсия. Помогите пожалуйста разобраться. В частности каким образом alert отрабатывает 4 раза...что происходит внутри?...Ведь мы вызываем printList() до тех пор пока obj == true а потом должен по идее 1 раз отработать alert и вывести цифру -4. Но каким образом он запоминает все значения....если не сложно объясните для особо одаренных.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<script type="text/javascript">
		"use strict"
		
		function printList(obj){
			if(obj.next){
				printList(obj.next);
			} 
			
			alert(obj.value);
		}
		
		var list = {
			value: 1,
			next: {
				value: 2,
				next: {
					value: 3,
					next: {
						value: 4,
						next: null
					}
				}
			}
		}
		
		printList(list);
	</script>
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272187
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function printList(obj){
			if(obj.next){
				printList(obj.next);
			} else {			
			           alert(obj.value);
                                         }
		}
		


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

Рекурсия = это матрешка. Вызовы - контексты исполнения - вкладываются друг в друга.
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272189
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

F12 ты так и не освоил
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272190
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
принт1принт 1
принт 2принт3
алерт3

алерт 2

алерт1


поэтому, в исходном коде сначала алерт самый глубокий сработал, а потом по матрешке назад. Ферштейн?
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272193
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMastervdekameron,

F12 ты так и не освоил

Я на первом курсе над рекурсией так втупил, что с тех пор не глумлюсь на эту тему.... неэтично типа.
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272204
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Baskakovпоэтому, в исходном коде сначала алерт самый глубокий сработал, а потом по матрешке назад. Ферштейн?

То, что пошло по матрешке назад я ферштейн. Я не ферштейн какого извините Х.. оно пошло назад....эти значения что где-то запоминаются?
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272206
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir BaskakovЯ на первом курсе над рекурсией так втупил, что с тех пор не глумлюсь на эту тему.... неэтично типа.

За это отдельное спасибо!
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272207
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterF12 ты так и не освоил

Честно, нет
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272228
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronVladimir Baskakovпоэтому, в исходном коде сначала алерт самый глубокий сработал, а потом по матрешке назад. Ферштейн?

То, что пошло по матрешке назад я ферштейн. Я не ферштейн какого извините Х.. оно пошло назад....эти значения что где-то запоминаются?

да. В стеке. каждый вызов ф-ции - как бы в новом, свежем окружении. когда из функции выходит, это окружение изничтожается (в простых случаях) или в случае замыканий - сохраняется.

Книжка "Сильные стороны Javascript" Крокфорда и его сайт - очень полезное чтиво.
================================
кто осилил мозгом рекурсию, дальше замыкания, комбинаторы с неподвижными точками самоприменимости и далее всякие страшные монады. круто, мощно, модно! велкам.

вот - маэстро показывает чернобелую магию http://www.crockford.com/javascript/little.html
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272274
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Baskakovда. В стеке. каждый вызов ф-ции - как бы в новом, свежем окружении. когда из функции выходит, это окружение изничтожается (в простых случаях) или в случае замыканий - сохраняется.

Большое спасибо!! Принцип понятен, более подробно думаю надо уже из книги черпать.
...
Рейтинг: 0 / 0
Принцип работы обратной рекурсии
    #39272592
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что у тебя сообщения выдаются по мере освобождения стека.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Принцип работы обратной рекурсии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]