当我在jQuery的数据中存储像{a: 1, b: 2 }
这样的对象时,它是复制对象还是保存对它的引用?
我有一个庞大的对象,我想要不同的元素来存储从不同点到同一个对象的不同引用,我不希望它被复制。
像
var obj = {
a: {
one: 1, two: 2
},
b: {
apple: 'yummy', banana: 'ehh'
}
c: {
d: {
'jQuery': jQuery
}
e: ['You get the point']
}
};
$('div').data('info', obj.b);
$('#JQ').data('jq_reference', obj.c.d.jQuery);
答案 0 :(得分:5)
根据my jsfiddle test,它存储了一个引用。
如果我这样做:
$('div').data('info', obj.b);
obj.b.apple = 'bleuch';
alert($('div').data('info').apple);
警告“bleuch”,表示正在存储对原始对象的引用。
答案 1 :(得分:2)
它将保存对它的引用。
永远不会复制Javascript对象,除非您明确复制。
答案 2 :(得分:0)
“数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(然后所有数据值都在内部存储在jQuery中)。”