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我想这是更好的选择。