Javascript 将回调函数传递给jQuery AJAX成功函数

Javascript 将回调函数传递给jQuery AJAX成功函数,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,我试图在AJAX调用成功时传入一个要运行的函数,但是它不起作用,因为它说“回调不是函数” 例如: 呼叫代码: getGrades(var); JS: 现在,如果我将下面的这一行替换为函数名本身,它将正常工作: callback(response); 但是我不能让它像上面那样工作,从传入的参数中获取函数名。showGradesBox是代码中的字符串。因此,有两个选项可以执行回调函数: 如果您想保留字符串,可以使用 this[callback](response); (如果在全局范围中

我试图在AJAX调用成功时传入一个要运行的函数,但是它不起作用,因为它说“回调不是函数”

例如:

呼叫代码:

getGrades(var);    
JS:

现在,如果我将下面的这一行替换为函数名本身,它将正常工作:

callback(response);

但是我不能让它像上面那样工作,从传入的参数中获取函数名。

showGradesBox
是代码中的字符串。因此,有两个选项可以执行回调函数:

如果您想保留字符串,可以使用

this[callback](response);
(如果在全局范围中定义了
callback
,您也可以使用
window[callback](响应);

或者您可以直接传递函数:

var callback = showGradesBox;

(在本例中,您可以保留现有代码以执行回调)

您不能将字符串作为函数传递,但如果它位于对象文字内部,则可以使用括号表示法,或者如果它是全局的,则可以使用
窗口[回调]
引用全局范围内的变量,并分配函数,而不是使用函数declaration。另一方面,在查看它之后,仅从ajax函数返回承诺,并使用
done()
会简单得多,就像so->@adeneo那样,只有成功才能运行?
var callback = showGradesBox;