【问题标题】:Dynamic variable access in JS ES6JS ES6 中的动态变量访问
【发布时间】:2019-09-06 04:55:57
【问题描述】:

我目前正在为 js 的 Array.prototype.sort() 编写一个比较函数。现在的问题是:我有一个对象实例a,其中包含我想要排序的变量和函数。我昨天了解到我可以访问像 a['fct']() 这样的函数(我有方法名称)。

所以我想做的是像

a['fct'] (typeof a['fct'] === 'function' ? () : nothing)

所以如果它是一个函数,我基本上想执行它,如果它是一个变量,我就将它用作一个变量。我想省略一个具有相同排序逻辑的整个块,所以我想保留它的三元运算符风格。这可能吗?

【问题讨论】:

  • typeof a['fct'] === 'function' ? a['fct']() : a['fct']

标签: javascript


【解决方案1】:

你应该这样做:

typeof a["fct"] == "function" ? a["fct"]() : a["fct"]

您也可以使用my other answer how to use it 中的可选链接,例如:

a["fct"]?.()

如果a["fct"] 是一个函数,这将调用方法,否则会从a["fct"] 得到结果。

【讨论】:

  • 非常感谢 - 我正在寻找更像第二个的东西,而忽略了明显的第一个选项。 :D
猜你喜欢
  • 2021-07-12
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
相关资源
最近更新 更多