我正在对 jQuery.data()
进行一些测试,并且我正在尝试创建对某个数据键的本地引用,我希望它可以在本地进行更改并仍然影响“外部”。我认为有一个例子会更好,因为我将半长代码发布在 jsFiddle 而不是这里:
http://jsfiddle.net/esbenp/p4kt2/22/
我希望的输出是:
{1: {length: 1}, total: 1}
但只有长度属性会受到局部变量增量的影响:
{1: {length: 1}, total: 0}
我该怎么办?
最佳答案
如果您在 .data()
中存储一个对象(或数组),那么您实际上是在存储对其的引用,因此如果你这样做:
var obj = { key: 'value' }
$(el).data('obj') = obj;
obj.key = 'new value';
$(el).data('obj').key
也将是新值
,因为它是同一个对象。
但是,如果存储的值是普通类型(例如数字或字符串),则将存储它的副本:
var n = 5;
$(el).data('obj') = n;
n++;
$(el).data('obj')
仍为 5。
关于jquery - 创建对 jQuery.data 键的本地引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759607/