【发布时间】:2012-05-22 14:50:09
【问题描述】:
我的班级中有一个像这样的对象:
this.options = {
a: 1,
b: 2,
...
};
我只是想知道是否有办法将选项对象“附加”到 Javascript 中的当前范围,这样我就可以直接引用 a 和 b(而不是 this.options.a 和 this.options.b) .比如:
attach(this.options);
var myVariable = a + 3; // 4
detach(this.options);
或
with( this.options, {
// code here
var myVariable = a + 3; // 4
});
在上面,attach 和with 具有获取this.options 的所有子级并将它们附加到当前范围的效果,因此它们可以通过a 而不是this.options.a 访问。 (with 版本在您完成后会简单地分离 this.options,将可能具有破坏性的附件封闭在该范围内)。
只要它在 Spidermonkey/Mozilla 引擎中工作,我不介意它是否便携。
我只是出于好奇和懒惰才提到这一点:所有嵌套的名称都变得烦人,而且我知道在 R 语言中这是可能的(事实上,上面 sn-ps 中的语法几乎完全一样你会用 R 写什么来实现这一点)。
【问题讨论】:
标签: javascript syntactic-sugar