我刚刚将一段作为对象文字的代码转换为类,并且在jQuery $.each()
循环中遇到了范围问题。
说我上课了......
var myClass = function(var1) {
this.var1 = var1;
}
myClass.prototype.myFuncion = function() {
var context = this;
$.each(this.var1, function() {
context.myOtherFunction()
//is there any way of accessing 'this' from here?
})
}
我想知道如何从每个内容中访问类上下文?
我知道我可以在循环之外定义变量,但这是首选方法吗?
答案 0 :(得分:1)
在jQuery each
中,this
关键字引用迭代中的当前元素。
您可以阅读documentation并查看examples来说明这一点。
在循环外定义变量是常见的情况,例如,您可以在jQuery中看到 - UI source code for datepicker。
答案 1 :(得分:1)
你做到这一点的方式是要走的路;一旦输入每个的范围,“this”指的是正在被高速缓存的集合中的当前项。据我所知,没有内部语言构造来获得“父母”这个;重命名它是最好的方式。
答案 2 :(得分:0)
这不会直接回答您的问题,但我发现最近的Google I / O视频非常有用:http://ontwik.com/javascript/google-io-2011-learning-to-love-javascript
大约20-25分钟是对JavaScript中“this”的一个很好的解释。它也非常清楚地解释了一些语言特质。