0

我想在迭代函数中使用 jQuery 元素,同时保持对类的实例变量的访问。

例如:

class MyClass

  myVar: true

  myFunction: =>
    $('div').each ->
      console.log @.myVar # true?
      console.log $(this) # div?
4

1 回答 1

2

您提出的问题的答案是:使用粗箭头each来维护 的值@,并使用传递给的索引/元素参数each来访问元素:

myFunction: =>
  $('div').each (i, e) =>
    console.log @myVar
    console.log $(e)

此外,使用@myVar代替@.myVar(两者都可以,但@.myVar远非惯用)。

对于您实际尝试做的事情,更好each的答案是避免并使用 CoffeeScript 的for/in

myFunction: ->
  for div in $('div')
    console.log @myVar # true
    console.log $(div) # div
于 2013-10-28T19:14:38.420 回答