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:



attach(this.options);
var myVariable = a + 3; // 4
detach(this.options);


or



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