Javascript 有没有办法将对深对象键的引用存储在变量中?

Javascript 有没有办法将对深对象键的引用存储在变量中?,javascript,typescript,object,reference,Javascript,Typescript,Object,Reference,举下面的例子: const a={ b:{ c:空 } }; 设d=[“b”,“c”]; 设reference=a; d、 forEach(key=>(reference=reference[key]); reference=“fe”; log(“带有对对象深键的引用”); 控制台日志(a); a[“b”][“c”]=“fe”; log(“直接设置,我想要什么”); 控制台日志(a)只能“通过引用”更改数组和对象的值。但是对于对象和数组,是的,您可以 您可以检查它是否能很好地解释基本值与参考值

举下面的例子:

const a={
b:{
c:空
}
};
设d=[“b”,“c”];
设reference=a;
d、 forEach(key=>(reference=reference[key]);
reference=“fe”;
log(“带有对对象深键的引用”);
控制台日志(a);
a[“b”][“c”]=“fe”;
log(“直接设置,我想要什么”);

控制台日志(a)只能“通过引用”更改数组和对象的值。但是对于对象和数组,是的,您可以


您可以检查它是否能很好地解释基本值与参考值。

您需要
弹出
d
中的最后一个键,并在最后在
参考上使用它

设d=[“b”,“c”],
last=d.pop(),
参考=a;
forEach(key=>reference=reference[key]|{});
参考[最后]=“fe”;
您可以使用
reduce
在累加器中获取对象的引用,并使用提供的值更新
last

函数更新路径(原始、路径、值){
const last=path.pop();
reduce((acc,key)=>acc[key]|{},original)[last]=value;
归还原件
}
常数eg1={
b:{
c:空
}
}
console.log(
更新路径(eg1,['b','c'],'fe')
)
常数eg2={
1: {
2: {
3:‘首字母’
}
}
}
console.log(
updatePath(eg2,['1','2','3'],'updatedValue')

)
让ref=a.b;参考c=‘fe’是您所能做的最好的
ref=…
从不修改现有对象。这是否回答了您的问题?不直接。例如,您可以在
a['b']
上保留一个更高一层的引用,它是一个对象并具有引用。可配置setter/getter的更通用概念称为功能镜头或仅镜头(复数或单数)。但不叫它镜头。