为什么回调函数中的参数是可选的?

时间:2016-02-29 23:15:14

标签: javascript parameters callback

如果省略回调函数的参数,它仍然有效。例如,

var callback1 = function() {
    $("span").prepend("Callback 1: " +  event.pageX + " " + event.pageY + "<br>");
};
$("div").click(callback1);

在未传递event参数时有效。这看起来相当于:

var callback2 = function(event) {
    $("span").prepend("Callback 2: " +  event.pageX + " " + event.pageY + "<br>");
};
$("div").click(callback2);

传递参数,因为我觉得它应该是。

使用此here的JSFiddle。

我发现这种JS现象很特殊。它为什么有效?

编辑由于持怀疑态度的评论,此代码也有效。

var print = function(data) {
  $("div#data").html(JSON.stringify(data));
};
socket.on("definition", print);
socket.on("example", print);
socket.on("relatedWords", print);
socket.on("pronunciation", print);
socket.on("hyphenation", print);
socket.on("etymologies", print);

这使用Socket.io(Node.js模块)。每个参数返回一个参数data。它对我有用。

0 个答案:

没有答案