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()
);

または、コールバックで提供された元の jQuery- (または任意のもの) にアクセスする必要があり、thisAirbnb の JavaScript スタイル ガイドに従うことに関心がある場合は、命名規則により、エイリアスとして使用することが指示されます。_this

_this = @

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