Wednesday, May 16, 2012

Javascript attach an object syntactic sugar?

I have an object in my class like so:

this.options = {
a: 1,
b: 2,

I just wondered if there was a way to "attach" the options object to the current scope in Javascript, such that I can refer to a and b directly (instead of this.options.a and this.options.b). Something like:

var myVariable = a + 3; // 4


with( this.options, {
// code here
var myVariable = a + 3; // 4

In the above, the attach and with have the effect of taking all of the children of this.options and attaching them to the current scope so they are accessible via a instead of this.options.a. (The with version simply detaches this.options once you're done, enclosing the potentially-damaging attaching to within that scope).

As long as it works in the Spidermonkey/Mozilla engine, I don't mind if it's not portable.

I only mention this because of curiosity & laziness: all the nested names are getting annoying to type out, and I know that in the R language this is possible (in fact, the syntax in the snippets above is almost exactly what you'd write in R to achieve this).

No comments:

Post a Comment