の有無にかかわらず関数を呼び出します。中括弧を使用して関数this
を呼び出すと、クリックされた要素が参照されません。は、私はしばしばこのように呼ばれる関数を参照してくださいjqueryのスクリプトでかっこスコープの質問
個人的に私はそれが好きではありません。私は自分のコードで使用されているものが関数であるかどうかを確認したい。私は引数としてthis
を渡すことを前提としています。これまでの私のやり方です:
var somefunction = function($clickedLink){
$clickedLink.doseomething()
}
$(someelement).click(function(){ somefunction($(this)) });
私は中括弧を使用しないと、なぜ私はrefared要素にアクセスできますか?そして、中括弧なしで関数を呼び出すことは一般的には良い方法でしょうか?パフォーマンスに影響を与えますか?
しかし、中括弧で関数を呼び出すと、 'this'がclicket要素を参照しないのはなぜですか? – meo
@meo - 同じコンテキストを持つ関数を呼び出さないので、このようにコンテキストを維持する必要があります。 '$(someelement).click(function(){somefunction.call(this、$( );)); '...しかし、あなたは' $(someelement).click(somefunction);と比較してどのように冗長であるかを見ています; :) –
あなたに紹介していただきありがとうございます。しかし、私が最初のexmpleを取って、いくつかの関数を呼び出すときに中括弧を追加すると、 'this'はトリガー要素ではありません:/。それは私がそれが中括弧と関係があると思っていた理由です。 – meo