JavaScript有first-class functions,所以你可以直接傳遞給函數參考,你並不需要一個對象:
function showDialog(callback) {
var result = callback();
alert(result);
}
function bye() { return "bye!" };
showDialog(function() { return "Hello!" });
showDialog(bye);
var greetings = { ciao: function() { return "Ciao!" } };
showDialog(greetings.ciao);
當然,你可以也要通過完整的對象,在這種情況下,您需要修改功能如下:
function showDialog(options) {
var result = options.onSubmit();
alert(result);
}
然後:
showDialog({
onSubmit: function() { return "Hello!" }
});
showDialog({
onSubmit: bye
});
您也實現接受兩個對象和回調函數:
function showDialog(options) {
var result = typeof options === 'function' ? options() : options.onSubmit();
alert(result);
}
showDialog({
onSubmit: bye
});
showDialog(bye);
希望它能幫助。
你正在傳遞一個屬性的對象,但期望一個函數... – Bergi
這是什麼要求? –