#javascript #typescript
#javascript #машинописный текст
Вопрос:
Я хочу получить имя переменной ( user_name1
или user_name2
из примера), которое является результатом функции ( GetUserName()
) внутри этой функции ( GetUserName()
). Мне нужно это имя для создания объекта с тем же именем на стороне сервера (синхронизация данных).
function GetUserName(){
let result_variable_name = ????; //in (1) result_variable_name == 'user_name1', in (2) result_variable_name == 'user_name2'
socket.send("object_name", result_variable_name);
return "Some user name";
}
let user_name1 = GetUserName(); //(1)
let user_name2 = GetUserName(); //(2)
Возможно ли это? Как?
Комментарии:
1. Одним словом… Нет, это невозможно.
2. Передайте его в качестве параметра:
let user_name1 = GetUserName("user_name1");
Но мне интересно, зачем тебе это нужно. Я не понимаю, почему это было бы необходимо только для синхронизации данных (или для чего-то еще).3. Проблема здесь в том, что вы спрашиваете: «Как мне использовать X для выполнения Y?» но X, вероятно, уже является неправильным инструментом для использования.
Ответ №1:
Нет. Просто нет. Имена переменных не должны иметь внутреннего значения. Они просто заполнители в алгоритме, и иногда вы даже не можете управлять их именами в нужной вам степени. Кроме того, переменная на самом деле еще не существует на момент вызова функции. И даже если бы это было так, нет никакого разумного способа выяснить, какой переменной будет присвоен результат функции изнутри указанной функции.
Также:
let users = [GetUserName(), GetUserName()];
Что теперь?
Передайте имя явно в функцию, точка.
GetUserName('user_name1')