我试图了解如何使用可选的回调参数制作jasvascript函数
我不确定我想要实现的技术术语,因此难以找到解决方案,但这可能对其他新手有用
我,用法如下
MyFunction({
start: function() {
},
end: function() {
}
});
答案 0 :(得分:0)
我猜你可以这两种方式。你有一个默认选项,如:
function MyFunction(options) {
var defaults = {
start: function(){},
end: function(){}
};
// use jQuery.extend() or whatever you want
options = extend(default, options);
// Call a callback
options.start();
}
通过这种方式,调用回调始终是安全的,无论参数是否已设置。
或者您可以检查回调是否已设置,以及是否调用它。
function MyFunction(options)
// Call a callback
if('start' in options && typeof options.start === 'function') options.start();
}
答案 1 :(得分:0)
以下是一个例子:http://jsfiddle.net/0csnrv7p/
代码:
function myFunction(options) {
// You need something like this line if you want to handle the case
// where there are no arguments at all. If options is undefined then
// trying to access a property within it results in an error.
options = options || {};
if (typeof options.start === 'function') {
options.start();
}
// ...
// do stuff
// ...
if (typeof options.end === 'function') {
options.end();
}
}
myFunction({
start: function() {
console.log('start');
},
end: function() {
console.log('end');
}
});
这是一个包含更多信息的链接:http://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/