【发布时间】:2013-04-23 12:03:21
【问题描述】:
我正在寻找一种将“this”中的属性注入本地函数范围的方法,所以我不需要写“this”。引用此属性时。
具体细节显示在这段代码http://jsfiddle.net/wwVhu/3/,看这部分
...
//it's how it works
doStuff: function(param) { $('#output').html(this.value + param) }
//it's how i want it work - without referencing to this
//doStuff: function(param) { $('#output').html(value + param) }
我知道可以通过将函数代码包装在“with(this) { ... }”中来实现,但是还有什么其他选择?
在每个方法的开头写“with(this)”或使用 js aop 是我试图避免的。
【问题讨论】:
-
通常情况下,我会说只需将您的
value添加到fields定义之外,因此它的范围为匿名函数(基本上它成为一个“私有”变量)。但是,它会要求您为变量编写访问器方法。但我不确定你想用你的框架实现什么,所以我添加它只是作为一个建议。
标签: javascript scope