0

希望这个问题是有道理的,最好的解释方式是给你看一个例子。我在 CoffeeScript 中创建一个类,并且经常在 JS 中使用 @ 来表示“this”,但是,在下面的示例中使用它的最佳方法是什么?目前我将@存储在该方法的局部变量中,我想知道是否有更好的方法

class app

constructor: ->
    # store @ or "this" in a new local var
    $this = @

    # do some stuff

    # Do some sort of jQuery stuff
    $(document).jquerystuff(->
        # do something that references this
        $this.anotherMethod()
    );
4

1 回答 1

6

不要在 CoffeeScript 类中$this用作别名this$foo是说“这个变量引用一个 jQuery 对象”的常用表示法,但是任意的 CoffeeScript 类不是 jQuery。

使用=>粗箭头代替,->您根本不需要别名@

$(document).jquerystuff(=>
    @anotherMethod()
);

或者,如果您确实需要访问this回调中提供的原始 jQuery-(或其他),并且您愿意遵循 Airbnb 的 JavaScript 样式指南,则命名约定要求您使用_this别名:

_this = @

$(document).jquerystuff(->
    _this.anotherMethod()
);
于 2013-11-13T00:34:21.227 回答