Javascript对象上下文更改和评估

Javascript对象上下文更改和评估,javascript,object,properties,Javascript,Object,Properties,我在使用对象属性时遇到一些问题。我想在myObject上下文中计算表达式,以避免使用myObject.property 我的最终目标是计算更复杂的表达式,如'property1+property2',而不是'myObject.property1+myObject.property2' 我尝试了call方法来更改上下文,但它似乎没有在传递的上下文中看到对象属性(即,包含属性的对象)(请参见下面生成错误的代码的最后一行) 有没有办法在不使用this.或myObject.前缀的情况下使用对象属性?嗯,

我在使用对象属性时遇到一些问题。我想在
myObject
上下文中计算表达式,以避免使用
myObject.property

我的最终目标是计算更复杂的表达式,如
'property1+property2'
,而不是
'myObject.property1+myObject.property2'

我尝试了call方法来更改上下文,但它似乎没有在传递的上下文中看到对象属性(即,包含属性的对象)(请参见下面生成错误的代码的最后一行)

有没有办法在不使用this.或
myObject.
前缀的情况下使用对象属性?

嗯,有一条语句不推荐使用,您可能不应该过多地使用它,但在这种情况下,它可能不会被认为有害:

with(myObject){
 console.log( property1 );   // 20
 console.log( eval('property1') ); //20
 console.log( eval('property1+property2') ); // 5020
}

谢谢你的回答。这确实对我有帮助。嗯,
eval
似乎确实是有害的部分。
with(myObject){
 console.log( property1 );   // 20
 console.log( eval('property1') ); //20
 console.log( eval('property1+property2') ); // 5020
}