2013-10-04 3 views
3

У меня есть фон C, и я только начал узнавать о Javascript. В C, когда я создаю переменную и инициализирую ее (пример int foo), пространство зарезервировано в стеке для моей переменной. Разные пространства зарезервированы для разных типов (пример int, bool, unsigned int, double). В Javascript есть только один тип (var) Я могу создать экземпляр в виде строкового литерала (пример var person="John Doe";) или числа (пример var x=5;). Как Javascript может хранить эти значения, не зная, сколько места потребуется выделить для переменной?Как javascript выделяет память?

+0

Javascript не выделяет память вообще, реализация Javascript делает. И вполне возможно, что разные реализации используют разные методы. – Kninnug

+0

Тип выводится из контекста, и тип определяет память, необходимую для переменной. –

+0

См. Эту статью [Обзор V8: представление объекта] (http://www.jayconrod.com/posts/52/a-tour-of-v8-object-representation) для обзора того, как движок JavaScript Javascript представляет Javascript объекты. –

ответ

1

Javascript динамически типизирован и использует автоматическое выделение и восстановление памяти. С точки зрения реализации вы можете себе представить, что каждая переменная является своего рода набором указателей данных и указателей функций; более точно, как указатель полиморфного базового класса в C++. Тем не менее, память для объектов управляется для среды среды выполнения и не требует ручного вмешательства. Скорее всего, какая-то сборка мусора.

Смежные вопросы