为什么 AJAX 请求必须有这个?

Why Does An AJAX Request Have To Have This?

<script type="text/javascript">
        $(document).ready(function() {
            $("button").click(function(){
                $.ajax({
                    type: 'POST',
                    url: 'script.php',
                    success: function(data) {
                    alert(data);
                     $("p").text(data);
                    }
                });
            });
        });
</script>

为什么 AJAX 请求必须有函数的占位符? (在本例中为 'data')。如果您删除它,或使用任何其他词,它仍然可以正常工作。有人可以解释一下为什么吗?

你的 data 这里是 返回值的别名 (你的 ajax 请求 script.php 的 "answer") ,所以你可以引用它。它不是函数本身的占位符。

如何命名取决于您 - 就像 c++ 中的 lambda 参数名称一样(我发现它们类似于 JavaScript 在这种情况下的匿名函数):

[](string data){
   ... = data...
}

或在其他语言中使用 functions/methods 的 "out" 参数。

对于 C++ 类比:将 lambda 作为参数传递给另一个方法会是什么样子(您当然必须定义 Button class):

button.click(/*...,*/ [&](string data){ //"on success"
    MessageBox(NULL, data.c_str(), "Alert", NULL);
    ...
});