Javascript.RU

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

ExecitionContext, стек, объекты, код функций
Сколько читал, в С++ в стек помещается функция. В JS - только локальные переменные функций и объектов. С объектами вроде понятно (непонятно только чисто для самообразования - почему именно в стеке). А где хранятся сами функции? Есть ещё один стек для них?
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2015, 08:40
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а для чего эти стеки тебе в js надо? я этим вопросом не задавался, но функции тоже как бы хранятся в переменных:
var a = 1;
var b = function () { return 15; }
console.log(a);
console.log(b);
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2015, 13:06
Новичок на форуме
Отправить личное сообщение для nevro Посмотреть профиль Найти все сообщения от nevro
 
Регистрация: 03.04.2015
Сообщений: 5

Нужно, чтобы в дальнейшем разобраться с нюансами замыканий - где-то находил пример со вложенными функциями, когда ожидаешь один результат, а получается другой.
Про то, что функции хранятся в переменных - не уверен. Потому что везде пишут, что в контексте исполнения хранятся только локальные переменные, а так же аргументы функций и их названия - никакого кода функций туда не помещается. Получается, сами функции хранится где-то в другом месте, а та же var b содержит в себе не функцию, а адрес, по которому функция лежит.
Вот хотел у спецов узнать, как на самом деле.

Последний раз редактировалось nevro, 10.04.2015 в 13:10.
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2015, 13:33
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

вот вам замыкания
<html>
	<head><title>example</title></head>
	<body>
		<script>

function base (a) {
	
	function fn () {
		console.log(this);
		return a;
	}
	
	return fn;
}

var res1 = base(1);
var res2 = base(2);
console.log(res1);
console.log(res2);


console.log(res1.call({}));
console.log(res1());

console.log(res2.call({}));
console.log(res2());
		</script>
	</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2015, 14:28
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Сообщение от nevro
А где хранятся сами функции?
Вроде в куче, в составе стекового кадра -- ф-ция + контекст. вот тут посмотрите, как раз вопросы, которые вас интересуют освещаются

http://habrahabr.ru/post/125306/

Последний раз редактировалось theKingOfJava, 10.04.2015 в 14:47.
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2015, 14:33
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Сообщение от nevro
а та же var b содержит в себе не функцию, а адрес, по которому функция лежит.
Вот хотел у спецов узнать, как на самом деле.
Ну да, так же как и все остальное. В js есть только ссылки (правилнее -- сообщения)
Ответить с цитированием
  #7 (permalink)  
Старый 10.04.2015, 18:15
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от skrudjmakdak Посмотреть сообщение
я этим вопросом не задавался, но функции тоже как бы хранятся в переменных
Неа, в переменных хранятся ссылки на функции.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить код js-скрипта, находящегося в файле на сервере RomanA Общие вопросы Javascript 4 04.04.2012 09:53
Объекты в параметрах функций romantik2011 Серверные языки и технологии 1 29.07.2011 15:24