如何在函数签名中间实现可选参数?

时间:2017-05-23 20:29:57

标签: javascript

这是如何在JavaScript中实现的?

optionsObject

如果缺少SearchView,则回调将位于第二个位置而不是第三个位置。该函数如何注意到这种情况并适当地处理它?<​​/ p>

1 个答案:

答案 0 :(得分:3)

在这种情况下,JS不是这样做的,而是函数本身myFunc。通常做的是取arguments(这是一个包含你的参数的数组结构)并确定最后一项是什么。如果它是一个功能,请将其弹出并将其作为回调。剩下的只是简单的论点。

以下是示例代码:

function myFunc(){
  // arguments is usually turned into an array to access array methods
  var args = Array.prototype.slice.call(arguments);

  // Check the type of the last item
  var hasCallback = typeof args[args.length - 1] === 'function';

  // If the last item is a function, it's probably a callback. Pop it off.
  var callback = hasCallback ? args.pop() : function(){};

  // By now, args is your argument list and callback is a function that either
  // does something or is a noop.
}