Javascript 使用一部分深层对象键作为局部变量
我不知道这将被称为什么,但是,假设我有:Javascript 使用一部分深层对象键作为局部变量,javascript,Javascript,我不知道这将被称为什么,但是,假设我有: var object = {something:{really:{long:{x:2,y:3,z:null}}}}; //is there a way I can go like: with (object.something.really.long) { z = x * y; } console.log(object); //output: {something:{really:{long:{x:2,y:3,z:6}}}} 你的代码有效
var object = {something:{really:{long:{x:2,y:3,z:null}}}};
//is there a way I can go like:
with (object.something.really.long) {
z = x * y;
}
console.log(object);
//output: {something:{really:{long:{x:2,y:3,z:6}}}}
你的代码有效!甚至没有什么需要改变的。 但是,如所述,您应该避免将
与
一起使用,因为这会由于歧义而容易导致错误
不建议使用with语句,因为它可能会导致混淆错误和兼容性问题
不建议与一起使用,并且在ECMAScript 5严格模式下禁止使用。建议的替代方法是将要访问其属性的对象指定给临时变量
此外,对象比较将是错误的,因为对象通过引用进行比较。不管怎样,对象看起来就像你最后说的那样。你试过了吗?没有,我只是编了“with”位,实际上,比较不起作用,因为对象之间的比较是引用比较的。==对象之间的比较是引用比较的……你是对的。当他问我的时候,我忽略了这个问题。最后一行只是为了证明预期的结果是什么,更新得更清楚了,我最终还是选择了:
var o=object.something.really.long代码>我想这是更好的选择。