Javascript无法将上一个值设置为变量

Javascript无法将上一个值设置为变量,javascript,variables,Javascript,Variables,我的职能如下: function isAttachedDataChanged(){ if(attachedDataOld != interaction.attachedData){ console.log("VARIABLE IS CHANGED"); } } 我像那样运行这个函数,运行后我用新值设置attachedataold: isAttachedDataChanged(); attachedDataOld = intera

我的职能如下:

function isAttachedDataChanged(){
        if(attachedDataOld != interaction.attachedData){
                console.log("VARIABLE IS CHANGED");
        }
}
我像那样运行这个函数,运行后我用新值设置
attachedataold

isAttachedDataChanged(); 
attachedDataOld = interaction.attachedData;
当我第一次运行这个时,
attachedataold
是空的,所以它是好的,但是当我下次运行这个时,
attachedataold
不是用以前的值设置的,而是用当前值设置的。因此,它的工作原理如下: 首先这样做:
attachedataold=interaction.attachedata;

然后执行此操作:
IsAttachedataChanged()

确定让我们假设您的脚本正在启动,其调用IsAttachedataChange(),未设置AttachedataOld,您的函数end和AttachedataOld等于interaction.Attachedata。在第二次调用函数时,您如何期望if语句返回true?您已经设置了AttachedataOld=interaction.Attachedata。

如果
interaction.Attachedata
是一个对象而不是纯值,则您将两个对象绑定到同一个对象。是的interaction是一个对象。”var interaction={/*一些值*/attachedata:{}'您是否在任何地方更改
interaction.attachedata
?我不确定您的问题是什么,但控制台似乎只会在第一次和之后记录“VARIABLE is CHANGED”(变量已更改)。
AttachedataOld
交互。Attachedata
是相同的,因此不会记录任何内容。然后您会检查唯一的id、哈希或其他内容,而不是对象本身。正如我之前所说,当你说myVar=anObject时,你改变的是它的指针,而不是它的值。谢谢,我看不出我所做的:)现在它通过'var newObject=jQuery.extend({},oldObject);'