JavaScript: как преобразовать переменную в функцию с тем же именем, которое возвращает исходное значение - PullRequest
0 голосов
/ 10 ноября 2018

скажем, у меня есть числовая переменная (или любой другой тип), Я хочу преобразовать эту переменную в функцию, которая имеет то же имя переменной и возвращает исходное значение (без использования дополнительных переменных)

var x=1
x=()=>x

это скопирует x по ссылке, а не по значению, поэтому новый x всегда будет возвращать себя (то есть функцию), а не исходное значение

Я достиг результата, используя дополнительную переменную (temp)

var x=1
var temp=x
var x=()=>temp

я хочу скопировать эту переменную по значению , а не по ссылке Я знаю, как скопировать объект в другой объект, но это не тот случай

примечание: использование того же имени важно для выполнения следующего кода (т. Е. Мне нужно использовать функцию, если предусмотрен другой тип, я должен преобразовать ее в функцию с тем же именем)

1 Ответ

0 голосов
/ 10 ноября 2018

Просто напишите функцию:

function constFunction(temp) {
    return () => temp;
}

так что вы можете назвать его как x = constFunction(x). Как и при каждом вызове функции или присвоении, это копирует значение переменной, а не ссылку. И нет, вы не можете избежать второй переменной (в данном случае temp), поскольку вы не можете иметь x для ссылки как на функцию, так и на исходное значение.

...