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
这是什么要求? –