Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我必须将一个函数包含在另一个函数中?_Javascript_Ajax_Jquery - Fatal编程技术网

Javascript 为什么我必须将一个函数包含在另一个函数中?

Javascript 为什么我必须将一个函数包含在另一个函数中?,javascript,ajax,jquery,Javascript,Ajax,Jquery,当我用JSON编写一个函数时,为什么我必须将它封装在一个匿名函数中 这是有效的: $.ajax({ type: 'POST', url: 'http://www.myurl.com', data: data, success: function(data) { alert(data); } }); $.ajax({ type: 'POST', url: 'ht

当我用JSON编写一个函数时,为什么我必须将它封装在一个匿名函数中

这是有效的:

$.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: function(data) {
            alert(data);
        }
});
$.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: alert(data)
});
这不起作用:

$.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: function(data) {
            alert(data);
        }
});
$.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: alert(data)
});
简而言之,谢谢,因为您正在执行
alert()
并试图将结果分配给
success
回调,所以这不会起作用(
alert()
的结果是
未定义的
)。但是,您可以这样做:


在这种情况下,
customFunc
将接收与
success
传递相同的参数,因此它的签名应该是:
customFunc(data,textStatus,XMLHttpRequest)
,尽管它可以是一个子集,例如
customFunc(data)
您可以这样做。您只是使用了错误的
语法

success
属性需要一个函数表达式而不是一个函数()调用(然后将值返回到
success

所以

而不是

success: myfunction()