javascript:为一个对象的值设置null时的奇怪行为

时间:2015-08-26 08:10:54

标签: javascript

我有两个不同的对象:pos_cashinout和pos_cashinout_lokaal。

首先我将pos_cashinout设置为等于pos_cashinout_lokaal。 然后我将pos_cashinout_lokaal的一个键设置为null,但是当我检查它们时,它们对于两个对象都变为空。

这是我的代码:



pos_cashinout = pos_cashinout_lokaal;
window.alert(pos_cashinout.toSource());
window.alert(pos_cashinout_lokaal.toSource());
            	
pos_cashinout_lokaal.verrichting = null;
            	
window.alert(pos_cashinout.verrichting);
window.alert(pos_cashinout_lokaal.verrichting);




窗口的输出以相同的顺序发出警告:

  

({aan:" Jos&#34 ;, bedraguit:10,kassier:" Robbe&#34 ;, opmerking:" Einde dag",   bedragin:10013,id:1,verrichting:"贵公司"})

     

({aan:" Jos&#34 ;, bedraguit:10,kassier:" Robbe&#34 ;, opmerking:" Einde dag",   bedragin:10013,id:1,verrichting:"贵公司"})

     

     

我想,并且打算只将pos_cashinout_lokaal.verrichting设为null?

编辑对象确实只是按照我的方式引用。 在此处找到解决方案:How do I correctly clone a JavaScript object?

我得到了这样的工作:

cloneobject: function(obj){
    if (null == obj || "object" != typeof obj) return obj;
    var copy = obj.constructor();
    for (var attr in obj) {
        if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
    }
    return copy;
},

pos_cashinout = this.cloneobject(pos_cashinout_lokaal)

0 个答案:

没有答案