JavaScript 有一流的函数,所以你可以直接传递函数引用,不需要对象:
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);
希望能帮助到你。