Javascript-对象内容在取消引用之间更改?

Javascript-对象内容在取消引用之间更改?,javascript,scope,Javascript,Scope,我真的疯了。我是否遗漏了一些关于javascript范围的内容 this.allUnits = {/*old data*/}; this.reconfigure = ( newData ) => { console.log( newData.allUnitsArray ); // correct this.allUnits = {}; for( var i = 0; i < newData.allUnitsArray.length; ++i ) {

我真的疯了。我是否遗漏了一些关于javascript范围的内容

this.allUnits = {/*old data*/};

this.reconfigure = ( newData ) => {
    console.log( newData.allUnitsArray ); // correct

    this.allUnits = {};

    for( var i = 0; i < newData.allUnitsArray.length; ++i ) {
        var piece = newData.allUnitsArray[i];
        console.log( piece ); // correct

        this.allUnits[ piece.uid ] = piece;
        console.log( this.allUnits[piece.uid] ); // correct
    }

    console.log( this.allUnits ); // *SOME* ELEMENTS STILL REFERENCE OLD DATA!?!?
};
this.allUnits={/*旧数据*/};
this.configure=(newData)=>{
console.log(newData.allUnitsArray);//正确
this.allUnits={};
对于(变量i=0;i
在for循环结束和下一个控制台日志之间不可能执行任何其他代码,是吗


非常感谢您的帮助。:)

不,中间不会执行其他代码,但很可能请提供一个包含示例数据和意外输出的示例。正如上面提到的@Bergi,当我们没有完整的图片时,很难判断发生了什么。。。在猜测中,这可能是一个闭包问题,因为referenceLets做了一个粗略的猜测,并说这可能是非严格模式代码,
this.allUnits={}无效。然后,下面的代码将用新值覆盖某些属性,而其他属性保持不变。