2013-09-25 2 views
-2

Кто-то может сказать мне, когда я копирую/псевдоним объекта JavaScript, увеличивает ли это потребление памяти?Псевдоним javascript-объект увеличивает память?

Образец: Я хочу использовать ярлык для какого-либо объекта.

// total memory 12k 
// object.someobject 12k 
var a = object.someobject; 

Q1. Сколько памяти (24k? Или 12k)

// and if i do 
// object2 10k 
var b = object2; 
var c = $.extend(a,b); 

Q2. Сколько сейчас памяти?

Q3. Если я сделать это увеличить объем памяти, что лучше практика ShortCUT объект

- EDIT -

Q4. Что произойдет, если я удалю или задаю значение null?

ответ

3

Я верю в реализацию jQuery extenda и c будет тот же объект.

b свойства s копируются в a (по ссылке), поэтому увеличение памяти является очень незначительным; только b s ключи в a.

В коде:

var a = { "foo": {} }; // memory: defining a, 
var b = { "bar": {} }; // memory: defining b 
var c = $.extend(a, b); // memory: adding key 'bar' to `a` 
c === a; // true 
a.bar === b.bar; // true 
({}) === ({}); // false (for sanity) 
+0

+1 для проверки вменяемости –

+0

Q4. Что произойдет, если я удалю или установлю 'a' в' null'; –

+1

Тогда 'c' будет по-прежнему указывать на расширенный объект. Если вы также установили 'c' на' null', тогда объект получит сбор мусора (если не существует других ссылок). – Halcyon

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