Javascript Object context change and eval -


this question has answer here:

i have trouble using object properties. want evaluate expression within myobject context avoid using myobject.property.

my final goal evaluate more complex expression 'property1+property2' instead of 'myobject.property1+myobject.property2'.

i have tried call method change context but, doesn't seem see object properties in passed context(i.e. object containing properties)(see last line of code below generating error).

var myobject = {       property1: 20,       property2: 5000 };  print(myobject.property1);            // return 20 print(eval.call(myobject,property1)); // referenceerror: property1 not defined 

is there way use object properties without usage of this. or myobject. prefix?

well, there's with statement deprecated , shouldn't use much, in case maybe wouldn't considered harmful:

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

http://jsfiddle.net/f7d1b79b/1/


Comments