我正在寻找一种方法将属性从“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是我想要避免的。
答案 0 :(得分:0)
你为什么要这样做?它是命名空间,因为它很有意义。 this
引用侦听器正在侦听的元素。它包含的信息远不仅仅是价值。
如果你想要另一个变量中的值,你可以这样做:
var value = this.value
答案 1 :(得分:0)
基本上有四种选择:
doStuff
函数。this
标识符较短。我经常发现自己使用$t
。with(this) $('#output').html(value + param);
。如1)
中所述,这是一种糟糕的编码习惯。您的代码在param
。this
属性时会被破坏
醇>