用javascript中的值替换函数中的变量

时间:2018-11-16 15:02:09

标签: javascript string variables tostring

我正在寻找一种用函数的实际值替换变量的方法。我打算将此函数转换为字符串并通过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模块。

2 个答案:

答案 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)

staticreplace一起使用,regex将搜索所有x-es

g