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;
};

datagetJSON(见这里: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())是警报函数的调用(getResponse调用时不带任何参数,因此这会引发错误,就像从 获取一样),但它d.result是一个以数据为参数的新函数的定义。resultundefinedfunction(data){alert(getResponse(data)})

另外请注意,您不需要只需要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 回答