我的课堂上有一个对象,如下所示:
this.options = {
a: 1,
b: 2,
...
};
我只是想知道是否有一种方法可以将选项对象“附加”到 Javascript 中的当前范围,这样我就可以直接引用a
and b
(而不是this.options.a
and 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
andwith
具有获取所有子级this.options
并将它们附加到当前范围的效果,因此它们可以通过a
而不是this.options.a
. (一旦完成,该with
版本就会简单地分离this.options
,将可能损坏的附件包含在该范围内)。
只要它在 Spidermonkey/Mozilla 引擎中工作,我不介意它是否不可移植。
我只是出于好奇和懒惰才提到这一点:所有嵌套的名称都变得烦人,而且我知道在 R 语言中这是可能的(事实上,上面片段中的语法几乎就是你要写的在R中实现这一点)。