有人可以告诉我何时复制/别名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。 如果我这样做会增加内存,快捷方式的最佳做法
- 编辑 -
Q4。如果我删除或设置为null会发生什么?
答案 0 :(得分:3)
我相信jQuery的extend
a
和c
的实现将是同一个对象。
b
的属性被复制到a
(通过引用),因此内存增加非常小;仅b
中的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)