【问题标题】:Does this pattern has a name?这个图案有名字吗?
【发布时间】:2022-11-18 03:52:37
【问题描述】:

我想知道这种模式是否有一个我不知道的众所周知的名字。

function PATTERN_NAME(val) {
    return typeof val === 'function' ? val() : val;
}

我不知道pattern 在这里是否正确。只是想知道这种函数通常是如何命名的。

【问题讨论】:

  • 我什至不认为这是一种模式
  • 不确定你的意思,但也许是回调?
  • val()Higher-Order Function 电话。
  • 我认为他是在询问模式,如果它是回调,您可以在其中调用它,但如果它是普通值,则返回它。
  • 这并不了不起。三元运算符 ?: 在那里,这样如果没有“回调”函数分配给 val,该函数就不会爆炸。

标签: javascript


【解决方案1】:

如果valfunction | undefined | null
这称为“可选调用”,它被写为

function OPTIONAL_CALL(val) {
    return val?.()
}

(即它是现代 JS 中的一种语言特性)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

如果val可能有其他类型,一般称为“错误代码”

有关更具体的信息,请提供此类功能的一些实际用法

【讨论】:

  • 1. 那是一个不同的运营商。 2.这是一个不同的操作。当链中的一个或多个方法可能为 null 或未定义时,此运算符旨在促进方法链接。使用三元运算符更难进行方法链接。
  • 可选链接的条件是值是否未定义/空,而不是它是否是一个函数。
  • 你能提供一些现实生活中的用途吗?问题太宽泛,这是我对当前形式的最佳答案
  • Dimava 链接的文章确实有几个例子。
猜你喜欢
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 2011-08-03
相关资源
最近更新 更多