有些场景会动态传递一些计算公式到后端,后端计算出结果,计算公式可能会使用到一些变量。如用户输入的公式: a + b,需要计算 a + b 的值
有一种方法,在公式中使用 this 参数,然后传入model实现,如:
myFunc = Function( 'return this.a + this.b' )
调用时传入model
myFunc.call({ a: 1, b: 2})
> 3能不能在公式中省掉 this 呢? 这个场景需要创建一些可在函数中直接使用的变量。
可使用带逗号的参考实现,比如:
var args = 'a, b';
var body = 'return a + b';
var myFunc = new Function(args, body);
调用
myFunc(1, 2)
> 3
也可以使用数组参数来实现
args = ['a', 'b', 'return a + b'];
myFunc = Function.apply(null, args);
调用时也可以使用数组:
myFunc.apply(null, [1, 2])
> 3
回复 (0)
微信扫码 立即评论
