this question has answer here:
- calling eval() in particular context 7 answers
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 }
Comments
Post a Comment