2

コールバックで使用する関数を別の関数に渡そうとしています。関数を呼び出すには...

call("login", {email:user,password:pw}, alert(getResponse()));

呼び出しは次のように定義されます。

function call(url, p, f){
    $.getJSON(baseUrl + url, p, f(data));
};

getResponse は次のように定義されます。

function getResponse(d){
    return d.result.success;
};

dataによって返されgetJSONます (ここを参照してください: http://api.jquery.com/jQuery.getJSON/ )

dataその関数にどのように渡すつもりですか?

設定したブレークポイントに到達するため、関数が呼び出されます。

とれるgetResponseのに呼ばれたらUncaught ReferenceError: data is not defined

4

2 に答える 2

3

使用する

call("login", {email:user,password:pw}, function(data){alert(getResponse(data)}));

alert(getResponse())は alert 関数の呼び出し (getResponseパラメータなしで呼び出されるため、from からd.result取得することを意味するため、エラーがスローされます) ですが、データをパラメータとして取得する新しい関数の定義です。resultundefinedfunction(data){alert(getResponse(data)})

また、require のみを含める必要がないことf(data)に注意してください。$.getJSON(baseUrl + url, p, f(data));f$.getJSON(baseUrl + url, p, f);

于 2012-12-18T20:36:11.197 に答える
1

alert(getResponse())はアラートをポップし、関数ではなく に評価されundefinedます。

実装が alert(getResponse(d)) である関数を渡す必要があります。ここで、d はそのパラメーターです。

function(d){alert(getResponse(d);}例えばこんな表現

于 2012-12-18T20:38:21.177 に答える