Заменить переменную в функции значением в JavaScript - PullRequest
0 голосов
/ 16 ноября 2018

Я ищу способ заменить переменную в функции ее фактическим значением.Я собираюсь преобразовать эту функцию в строку и отправить через 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 голосов
/ 16 ноября 2018

используйте replace с regex, g будет искать все x-es

let x = Math.random();

let funcString = function () {
    let y = x + 10;
    let a = x + 10;
    let b = x + 10;
    
    return y;
}.toString().replace(/x/g, x);

console.log(funcString);
0 голосов
/ 16 ноября 2018

Хорошо, если вы возвращаете эту функцию как string, просто используйте String#replace() метод , чтобы заменить 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));
...