回调函数的默认值应该在对象中?

时间:2012-10-29 14:44:59

标签: javascript jquery callback extend

问题

我正在尝试为对象方法指定选项,其中一个选项是回调函数。我使用jQuery extend方法将我的默认值应用于options参数,但我不确定应该为回调参数设置什么值。

这就是我现在所拥有的:

var options = $.extend({
    wrapper:    '#wrapper', // Define the default wrapper to prepend to
    fade:       true, // Fade the overlay by default
    callback:   function(){} // Define the callback function
},options);

问题

以上是为回调分配默认值的最佳方法吗?或者将它设置为假更好?我想如果你试图调用options.callback()并将回调设置为false,那么你会收到错误吗?

2 个答案:

答案 0 :(得分:3)

具有非函数默认值需要在调用之前进行显式检查。

拥有一个空函数需要调用它的开销(尽管是最小的)

没有正确的方法。这完全取决于你。如果您使用空函数,则可以使用$.noop重用现有函数。

var options = $.extend({
    wrapper:    '#wrapper', // Define the default wrapper to prepend to
    fade:       true, // Fade the overlay by default
    callback:   $.noop // Define the callback function
},options);

答案 1 :(得分:1)

jQuery有一个内置函数,不会执行任何名为$.noop的内容。