私は答えをグーグルで検索しようとしましたが、問題は、問題に対処する方法が本当にわからないことです。間違ったトピックを見つけただけです。
次の違いは何ですか:
this.on('click',thisismyfunction );
と:
this.on('click', function(){
thisismyfunction();
});
私は答えをグーグルで検索しようとしましたが、問題は、問題に対処する方法が本当にわからないことです。間違ったトピックを見つけただけです。
次の違いは何ですか:
this.on('click',thisismyfunction );
と:
this.on('click', function(){
thisismyfunction();
});
注目すべき違いの 1 つは、最初の関数にイベント オブジェクトが直接渡されることthisismyfunction
ですarguments[0]
。2 番目のバージョンでは、そのオブジェクトは外側の無名関数に渡されます。
また、どちらの例でも、すぐには何も呼び出されません。両方の関数 (最初のケースでは名前付き関数、2 番目のケースでは無名関数) をイベント ハンドラーとしてバインドしているため、関連するイベントが発生した後に呼び出されます。
どちらを使用するかは、主にコードの構造とスタイルによって異なります。bennett_an が言ったように、同じ関数を複数のイベントにバインドする場合は、最初のバリエーションを使用することをお勧めします。
1 つは名前付き関数です。そのポイントは、関数を複数の場所から複数回呼び出す可能性があるということです。もう 1 つは無名関数です。基本的には、「次のことを行う」と言っているようなものです。
関数: JavaScript の関数は、名前付きまたは匿名のいずれかです。名前付き関数は、次のように function キーワードを使用して定義できます。
function named(){ // do some stuff here }
無名関数は通常の関数と同様の方法で定義できますが、名前はありません。
以下に示すように、無名関数を変数に割り当てるか、メソッドに渡すことができます。
var handler = function (){ // do some stuff here }
JQuery は、次のように非常に頻繁に無名関数を使用します。
$(document).ready(function(){ // do some stuff here });
本当に何もありません。
最初の例は直接バインドしthisismyfunction
ます。2 番目の例は、呼び出されたときに呼び出す無名関数にバインドしますthisismyfunction()
。
あなたの例では、おそらく結果に違いはありません。ただし、2 つの方法の動作はわずかに異なります。
最初の例:
this
関数内では、クリックされた要素を参照します2 番目の例
this
関数内では無名関数を参照していますしたがって、どのスタイルを使用するかは、自分の好みと達成したいことによって異なります
thisismyfunction は引数を受け取りません。匿名関数に埋め込む方法。