首页 > 解决方案 > 如何将函数作为字符串传递并将该字符串(函数)链接到对象上?

问题描述

我有一个变量filter,其中包含一个表示函数的字符串:

const filter = `equalsFilter('elements.url_pattern', ${urlPattern})`

我想把它链接到另一个像这样的对象上:

query.filter

当然,这不起作用,因为过滤器是一个字符串。基本上我的目标是这个结果:

query.equalsFilter('elements.url_pattern', urlPattern)

我怎样才能实现有点像上面描述的?

标签: javascript

解决方案


通过将函数表示作为对象传递来解决这个问题

const filter = {
      type: 'equalsFilter',
      element: 'elements.url_pattern',
      value: urlPattern
    }

然后

query[filter.type](filter.element, filter.value)

推荐阅读