Javascript 如何通过对象属性的引用进行赋值

Javascript 如何通过对象属性的引用进行赋值,javascript,Javascript,如何通过引用指定对象属性。我的对象如下所示: obj = { level: { level: { level: {} } } } var obj = { level: { level: { level: {} } } }; do { var level = obj.level; } while(Object.keys(level).lengt

如何通过引用指定对象属性。我的对象如下所示:

obj = {
    level: {
        level: {
           level: {} 
     }
   }
 }
var obj = {
    level: {
        level: {
            level: {} 
        }
    }
 };


do {
    var level = obj.level;
} while(Object.keys(level).length != 0);


level = {
    newPro: 'Some value'
}
我的代码是这样的:

obj = {
    level: {
        level: {
           level: {} 
     }
   }
 }
var obj = {
    level: {
        level: {
            level: {} 
        }
    }
 };


do {
    var level = obj.level;
} while(Object.keys(level).length != 0);


level = {
    newPro: 'Some value'
}
但最后一级属性中的任何更改

预期产出:

{
    level: {
        level: {
            level: {
                newPro: 'Some value'
            } 
        }
   }
}

您可以测试下一个
级别是否存在

如果存在,将
级别的值作为
temp
的新值,用于新的
while
循环

如果没有,请将新特性指定给临时对象

var object={level:{level:{level:{}},
温度=对象;
while(温度等级){
温度=温度水平;
}
temp.newPro=‘某些值’;

console.log(对象)您的
逻辑执行while

while(Object.keys(level).length != 0)
由于
level
始终是
obj.level
且从不更改,因此卡在一个无限循环中

你就快到了,只是

  • 保留一个临时对象
  • 将值指定给其属性(
    newPro
    而不是直接指定值
var obj={
级别:{
级别:{
级别:{}
}
}
};
var-temp=obj;
while(对象键(临时).length>0){
温度=温度水平;
}
temp.newPro='Some value'

控制台日志(obj)预期的输出是什么?您试图实现什么?