如果省略回调函数的参数,它仍然有效。例如,
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
。它对我有用。