Я пытаюсь написать удобную оболочку для console.log, и я хотел бы напечатать любые переданные вместе с их содержимым.Как превратить имя переменной в строку в JS?
Могу ли я превратить имя переменной в строку в js?
Я пытаюсь написать удобную оболочку для console.log, и я хотел бы напечатать любые переданные вместе с их содержимым.Как превратить имя переменной в строку в JS?
Могу ли я превратить имя переменной в строку в js?
Предполагая, что вы хотите что-то вроде этого:
function Log(data)
{
console.log(input variable name, data);
}
Тогда я не думаю, что это возможно:
Для удобства .. вы могли бы сделать что-то вроде
console.log({ "your variable name": your variable});
который превращает вход в объект, который содержит имя переменной, которое вы хотите зарегистрировать. Немного больше печатает, но, возможно, делает вывод на консоль более читаемым.
Существует возможность. А вот как
var passed_variable = '65'; // The actual variable
var varname = 'passed_variable'; // The name of the variable in another variable
Теперь пройти varname
вокруг, но не фактическую переменную. Когда вам нужно к значению переменной, вы можете просто сделать:
console.log(varname, ' : ', window[varname]); // Outputs, passed_variable : 65
Я надеюсь, что вы найдете способ не использовать это. :)
, если 'pass_variable' не находится в глобальном пространстве, он не будет отображаться как' window [varname] '. И я не хочу, чтобы мои переменные отображались в глобальной области, чтобы регистрировать их. –
и, конечно же, префикс чего-либо с помощью 'var' - это то, что вы делаете, когда вы не хотите, чтобы он попадал в глобальную область действия - в этом случае журнал явно не будет работать (если только сам код не находится в глобальной области видимости , в этом случае ключевое слово 'var' просто бессмысленно) –
@JanDvorak, Да, подразумевается, что он находится в глобальной области. – Starx
Вы имеете в виду передать переменные функции в качестве параметров и получить имена этих переменных? Если это так, это невозможно. Даже не имеет смысла писать что-то вроде: myvariable.name. Я не понимаю – Delta
Не думаю, что я понимаю ваш вопрос. – Sethen
Нет, это невозможно. –