首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖参数的默认值?

如何覆盖参数的默认值?
EN

Stack Overflow用户
提问于 2013-01-03 02:09:17
回答 2查看 179关注 0票数 1

我有以下函数签名:

代码语言:javascript
复制
question: (question_id, onComplete, use_redis = true) ->

我假设我可以将use_redis参数重写为false,但是我尝试过的所有方法都还不起作用。如果我以内联方式定义我的onComplete回调,这是可能的吗?下面是我对该函数的调用:

代码语言:javascript
复制
Summaryresults.question 1, (summary) ->
    answer_data.summary = summary
    done()

我尝试了几种不同的方式添加false,但都不起作用。我是否需要在其他地方定义我的回调函数,然后引用它,而不是内联定义它来覆盖use_redis

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-03 02:20:39

应该是这样工作的:

代码语言:javascript
复制
Summaryresults.question 1, (summary) ->
  answer_data.summary = summary
  done()
, false

第一个参数是id,第二个参数是您的回调函数,第三个参数是将use_redis设置为false

编辑-我的更改api的解决方案:

代码语言:javascript
复制
question: (id, options...) ->
  [use_redis, onComplete] = options
  if typeof use_redis is "function"
    onComplete = options
    use_redis = true

在调用此函数时,应始终将回调作为最后一个参数:

不使用_redis-param:

代码语言:javascript
复制
Summaryresults.question 1, (summary) ->
  answer_data.summary = summary
  done()

使用use_redis-param:

代码语言:javascript
复制
Summaryresults.question 1, false, (summary) ->
  answer_data.summary = summary
  done()
票数 2
EN

Stack Overflow用户

发布于 2013-01-03 02:20:40

通常,您希望回调作为最后一个参数,否则语法会变得不可靠。

那么为什么不改变你的API呢?

代码语言:javascript
复制
question: (question_id, options = {}) ->
  onComplete = options.onComplete
  useRedis = options.useRedis ? true
  # ...

Summaryresults.question 1,
  useRedis: false
  onComplete: ->
    answer_data.summary = summary
    done()

看看它的可读性有多高?

但话虽如此,您可以在正确的位置使用时髦的逗号进行调用

代码语言:javascript
复制
Summaryresults.question 1, (summary) ->
  answer_data.summary = summary
  done()
, false

它编译为:

代码语言:javascript
复制
Summaryresults.question(1, function(summary) {
  answer_data.summary = summary;
  return done();
}, false);

或者也许

代码语言:javascript
复制
hollaback = (summary) ->
  answer_data.summary = summary
  done()

Summaryresults.question 1, hollaback, false
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14126981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档