为什么Chrome console.log会在更新之前更新我的变量?

时间:2015-10-22 05:11:29

标签: javascript datatables google-chrome-devtools

免责声明:这有点令人难以置信,这是一个漫长的夜晚,我不是母语人士 - 所以请。原谅如果描述不清楚。 PLS。只是评论,我会试着澄清:)

我正在尝试使Datatables表可编辑,到目前为止它看起来非常好。但是当我详细查看结果时我得到了一个惊喜,结果证明我克隆一行的小函数也修改了原来的行!

对于一个复制品,请。看看我保存的@ http://mbaas.de/edperm.html页面。打开控制台,点击“speichern”-Button:这只会将数据记录到控制台。 (只是为了确保价值符合我们的预期)。现在点击最后一行“7”左边的小图标:这应该克隆那行(JS-Function cloneRow我将在稍后展示)并观察控制台输出:check “cloneRow!”之后立即打印的数组 - 正如您在代码中看到的那样,没有采取任何措施来更新数据,但数据[3] [0]已经改变了!并且,BTW,line3应该完全不受此更新的影响 - 我想读取该行,更改ID并附加它。

所以,这是cloneRow的代码:

function cloneRow(arg)
{
    var oTable = $("#tabPerm").DataTable();
    console.log('cloneRow!');
    var d1a = oTable.data();
    console.log(d1a);
    arg=$(arg).closest('tr');
    var d = oTable.row(arg).data();
    console.log("Vor Zuweisung d");
    var d2a = oTable.data();
    console.log(d2a);

    d[0]=-7;
    console.log("Nach Zuweisung d");
    var d3a = oTable.data();
    console.log(d3a);
    oTable.row.add(d).draw();
    var d4a = oTable.data();
    console.log(d4a);
}

这种效果的解释是什么?是控制台输出的时间还是什么......?

0 个答案:

没有答案