I saw a this function
(function (x, y, data, lbl, dot) {
var timer, i = 0;
rect.hover(function () {
clearTimeout(leave_timer);
var side = "right";
if (x + frame.getBBox().width > width) {
side = "left";
}
var ppp = this.popup(x, y, label, side, 1);
//var ppp = r.popup(x, y, label, side, 1);
frame.show().stop().animate({path: ppp.path}, 200 * is_label_visible);
label[0].attr({text: data + " hit" + (data == 1 ? "" : "s")}).show().stop().animateWith(frame, {translation: [ppp.dx, ppp.dy]}, 200 * is_label_visible);
dot.attr("r", 6);
is_label_visible = true;
}, function () {
dot.attr("r", 4);
leave_timer = setTimeout(function () {
frame.hide();
label[0].hide();
is_label_visible = false;
}, 1);
});
})(x, y, data[i], labels[i], dot);
what is this? a function? why function definition in ()?