jQuery中的javascript’this’范围

我刚刚将一段作为对象文字的代码转换为类,并且在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? }) } 

我想知道如何从每个内部访问类上下文?

我知道我可以在循环之外定义变量,但这是首选方法吗?

each jQuery中, this关键字引用迭代中的当前元素。 您可以阅读文档并查看示例来说明这一点。

在循环外定义变量是常见的情况,例如,您可以在datepicker的jQuery- UI源代码中看到。

你完成它的方式是要走的路; 一旦输入每个范围,“this”指的是正在被缓存的集合中的当前项。 据我所知,没有内部语言构造来获得“父母”这个; 重命名它是最好的方法。

这并不直接回答您的问题,但我发现最近的Google I / Ovideo非常有用: http : //ontwik.com/javascript/google-io-2011-learning-to-love-javascript

大约20-25分钟是对JavaScript中“this”的一个很好的解释。 它也非常清楚地解释了一些语言特质。