我正在尝试将函数传递给另一个函数以在其回调中使用,我使用函数调用该函数...
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
答案 0 :(得分:3)
使用
call("login", {email:user,password:pw}, function(data){alert(getResponse(data)}));
表达式alert(getResponse())
是alert函数的调用(getResponse
调用时没有任何参数,因此d.result
意味着result
会引发错误来自undefined
),但function(data){alert(getResponse(data)})
是将数据作为参数的新函数的定义。
另请注意,您f(data)
中不需要$.getJSON(baseUrl + url, p, f(data));
,只需要f
,因此您可以致电$.getJSON(baseUrl + url, p, f);
答案 1 :(得分:1)
表达式alert(getResponse())
会弹出一个提示,但不会评估某个函数,而是评估undefined
。
你必须传递一个实现警报的函数(getResponse(d)),其中d是它的参数。
例如表达式function(d){alert(getResponse(d);}
,例如