Я создаю довольно много объектов в Javascript, и мне нужно иметь возможность ссылаться на их получение позже, например, через массив. Теперь мне интересно, как сохранить ссылку на объект в массиве.
Объекты будут взаимодействовать с внешней библиотекой, которая может функционировать либо с идентификаторами объектов, либо с самим объектом. Я знаю, что Javascript рассматривает объектные переменные, такие как указатели, а не копии объектов, так что безопасно напрямую ссылаться на объекты?
Сначала я думал: "Если я сохраню идентификаторы объектов, которые будут поддерживать низкий уровень использования памяти", но это правда? Сколько памяти использует переменная объекта * по сравнению с целочисленной переменной?
* указатель на объект, а не данные объекта
Кроме того, если сохранить объекты непосредственно, это путь, можно ли использовать array.push()
для добавления нового объекта в массив? array.push()
ли array.push()
копию или работает как переменная?
Да, вы можете напрямую ссылаться на объекты. Если вы действительно заботитесь об использовании памяти, я бы сказал, что способ передачи идентификаторов будет использовать больше памяти, так как вам придется поддерживать другой набор сопоставлений.
Передача объектов напрямую позволит механизму JavaScript работать непосредственно с ссылками на объекты. Это не влияет на использование памяти, так как пока вы не клонируете.
Я считаю, что актуальным вопросом является погода или не сохранение целого числа, и использование этого в качестве идентификатора позже более эффективно, чем сохранение ссылки на объект.
Я бы пошел со ссылкой в массиве. размер ссылки по сравнению с номером будет незначительным.