为什么更改JQuery EasyUI的对象属性会影响原始值?

时间:2017-10-10 07:02:39

标签: javascript web jquery-easyui

我在使用easyui的内部方法后得到一个对象数据,我需要在将它作为datagrid中的新行附加之前处理它。

演示代码如下。

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

1 个答案:

答案 0 :(得分:0)

没有人试图解决这个问题,然后我继续努力。

在jsnice.org美化jquery.easyui.min.js文件后,我找到了这样一个结构:

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

因此,所有属性都在变量中存储。如果有人更改了对象值,则更改将立即存储。