2017-10-10 65 views
0

使用easyui的inner方法后,我得到一个对象数据,我需要处理它,然后将它作为一个新的行添加到datagrid中。为什么改变JQuery EasyUI的对象属性会影响原始值?

演示代码如下。 var data = $('#id')。datagrid('getRows')[0];

假设数据变量的内容是{'a':123} 如果我将它作为:data.a = 444;

然后再次运行相同的getRows命令: var data2 = $('#id')。datagrid('getRows')[0];

结果:{'a':444}

发生了什么事?

因为easyui是一个商业代码,它已被混淆,所以我不能通过阅读源代码来弄清楚它。

我猜可能是easyui实现的Set方法,所以在我改变属性后,它会改变源数据?

任何帮助?谢谢。

the real demo image of this question

回答

0

没有人试图解决这个问题,然后我继续工作吧。

美化通过jsnice.org的jquery.easyui.min.js文件后,我发现了这样的结构:

$.fn.datagrid.parseData = function (target) { 
     var targets = $(target); 
     var data = { 
      total: 0, 
      rows: [] 
     }; 

因此,所有的属性是可变的店在最开始。如果有人更改了对象值,更改将立即存储。

相关问题