0

現在、jquery ajax の成功応答に匿名関数を使用しています。

success: function(data){
  code
},

名前付き関数を使用しようとする場合:

success: success(data),

変数データが​​設定されていないと主張しています。私はできると思います

success: function(data){
  success(data)
},

しかし、これは本来のやり方ではないように感じます。なぜこのように動作するのですか?どうすればよいですか?

4

3 に答える 3

2

これは、JQuery が関数呼び出しではなく、関数への参照を想定しているためです。

JQuery は、どの関数を呼び出さなければならないかを知る必要があります。success(data)代わりに、関数呼び出しの結果を渡します(これsuccess(data)は何でもかまいませんが、無効でも結果はありません)何をすべきかについての手がかりがまったくありません。

参照とは、オブジェクト (この場合は「関数オブジェクト」) を指すものです。関数呼び出しは、代わりに、式として評価される結果を与える、または与えない実行するアクションと考えることができます。

使用するだけです:

success: success
于 2012-07-18T00:01:33.620 に答える
1

参照のみを渡す必要があります。あなたはそれをして、名前を渡すだけで購入します、のように

success: success

ここまでで、かっこを入力して関数を実行し、successその関数からの戻り値を割り当てました。

于 2012-07-17T23:58:47.430 に答える
1

プロパティはsuccesstype のオブジェクトを取りますfunctionfunction(data) { }関数を返します。success(data) 関数を呼び出し、それが返すものを返します。関数が呼び出されsuccessた場合は、次のようにします。

success: success,
于 2012-07-17T23:59:45.490 に答える