如何使用可选的回调参数创建一个javascript函数

时间:2014-11-20 22:31:27

标签: javascript

我试图了解如何使用可选的回调参数制作jasvascript函数

我不确定我想要实现的技术术语,因此难以找到解决方案,但这可能对其他新手有用

我,用法如下

    MyFunction({
        start: function() {
        },

        end: function() {
        }
    });

2 个答案:

答案 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/