javascript - 如何将函数作为字符串传递并将该字符串(函数)链接到对象上?
问题描述
我有一个变量filter
,其中包含一个表示函数的字符串:
const filter = `equalsFilter('elements.url_pattern', ${urlPattern})`
我想把它链接到另一个像这样的对象上:
query.filter
当然,这不起作用,因为过滤器是一个字符串。基本上我的目标是这个结果:
query.equalsFilter('elements.url_pattern', urlPattern)
我怎样才能实现有点像上面描述的?
解决方案
通过将函数表示作为对象传递来解决这个问题
const filter = {
type: 'equalsFilter',
element: 'elements.url_pattern',
value: urlPattern
}
然后
query[filter.type](filter.element, filter.value)