【发布时间】:2021-12-30 08:54:50
【问题描述】:
我一直在使用客户端 javascript 开发一个简单的计算器应用程序,并且已经实现了基本数学运算 +, -, x, / 的程序逻辑。该代码被实现为回调函数,因此它们可以在事件处理程序中使用。
add = (a , b) => a + b
subtract = (a , b) => a - b
multiply = (a, b) => a * b
divide = (a, b) => a / b
我读到工厂函数在每个函数的结构相似的情况下很有用。但是,我不确定如何创建要映射的集合是运算符的工厂函数。就像是,
createOperation("add") 将返回 (a , b) => a + b,createOperation("subtract") 将返回 (a, b) => a - b 等等。
我的第一个想法是将所有内容转换为字符串,将它们连接起来,然后使用 eval 返回。像eval("(example) => example.output") 这样的东西。从我在 MDN 文档和其他地方读到的内容来看,这是非常不鼓励的。
有没有办法在不诉诸eval hack 的情况下实现这一目标?
【问题讨论】:
标签: javascript function operators factory