Javascript jses6中的动态变量访问

Javascript jses6中的动态变量访问,javascript,Javascript,我目前正在为js的Array.prototype.sort编写一个比较函数。现在的问题是:我有一个对象实例a,其中包含我想要排序的变量和函数。我昨天了解到,我可以访问方法名为a['fct']的函数 所以我想做的是 ['fct']='function'的['fct']类型:没什么 如果它是一个函数,我基本上想执行它,如果它是一个变量,就把它当作变量使用。我想用相同的排序逻辑省略整个块,所以我想用三元运算符样式保留它。这可能吗?您应该这样做: typeof a["fct"] == "function

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

所以我想做的是

['fct']='function'的['fct']类型:没什么

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

您应该这样做:

typeof a["fct"] == "function" ? a["fct"]() : a["fct"]
您也可以使用可选链接,如中所示:


如果[fct]是[fct]的函数,则此函数将调用方法。

typeofa['fct']='function'?a['fct']:a['fct']非常感谢-我正在寻找更像第二个选项的东西,但忽略了明显的第一个选项D
a["fct"]?.()