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



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

演示代码如下。

var data = $('#id').datagrid('getRows')[0];

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

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

结果:{'a':444}

发生了什么事?

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

我想可能很容易实现 Set 方法,所以在我更改属性后,它会更改源数据吗?

有什么帮助吗?谢谢。

这个问题的真实演示图像

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

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

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

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

最新更新