我正在寻找一种用函数的实际值替换变量的方法。我打算将此函数转换为字符串并通过HTTP请求发送,因此需要将函数内部的变量及其值转换为
。let x = Math.random();
let funcString = function () {
let y = x + 10;
return y;
}.toString();
// Send funcString as a parameter
例如在上面的代码中,如果我照原样发送funcString
,则无论收到它的人都不知道x
的值是什么。
由于我最终要发送一个字符串,所以我想发送
"function () {let y = 0.53 + 10; return y;}"
(假设Math.random()
在运行时产生了0.53)。
有没有办法做到这一点?
我正在nodejs项目中执行此操作,因此我也可以使用npm模块。
答案 0 :(得分:1)
如果您以string
的形式返回此函数,只需使用 String#replace()
method 用其值替换x
出现的位置即可。
这是您应该如何使用它:
funcString.replace('x', x)
演示:
let x = Math.random();
let funcString = function () {
let y = x + 10;
return y;
}.toString();
console.log(funcString.replace('x', x));
编辑:
如果变量多次出现并且可以成为其他变量的一部分,只需将 a regex
与replace
方法一起使用。
funcString.replace(/\bx\b/g, x)
演示:
let x = Math.random();
let funcString = function () {
let y = x + 10;
let fix ='true';
let z = x * 2;
return y;
}.toString();
console.log(funcString.replace(/\bx\b/g, x));
答案 1 :(得分:0)
将static
与replace
一起使用,regex
将搜索所有x-es
g