function showYesNo(msg, yes, no) {
$("yesNo").setStyle("visibility", "visible");
$("yesNoMessage").innerHTML = msg;if(yes) {
$("yesNoBoxBtnYes").addEvent('click', function() { yes; });
}
if(no) {
$("yesNoBoxBtnNo").addEvent('click', function() { no; });
}
}
Wenn yes und no Funktionsobjekte sind und du sie als Handlerfunktionen für das click-Ereignis verwenden willst, so kannst du einfach schreiben:
`$("yesNoBoxBtnYes").addEvent('click', yes);`{:.language-javascript}
Siehe auch [http://jsfiddle.net/NcUKQ/](http://jsfiddle.net/NcUKQ/)
Wenn du `function() { yes; }`{:.language-javascript} notierst, so notierst du eine neue Funktion, die in ihrem Anweisungskörper gar nichts tut. »`yes;`{:.language-javascript}« ist einfach eine (Ausdrucks-)Anweisung, die nur aus einem Bezeichner besteht. Der wird aufgelöst und das Ergebnis des Ausdrucks ist die Funktion yes, allerdings wird damit nichts gemacht.
yes ist schon (deiner Aussage zufolge) ein Funktionsobjekt, es ist nicht nötig, es noch einmal in eine Funktion zu verpacken. Du kannst yes direkt an addEvent() übergeben.
Mathias