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
}