2013-09-29 1 views
0

Я пытаюсь написать удобную оболочку для console.log, и я хотел бы напечатать любые переданные вместе с их содержимым.Как превратить имя переменной в строку в JS?

Могу ли я превратить имя переменной в строку в js?

+0

Вы имеете в виду передать переменные функции в качестве параметров и получить имена этих переменных? Если это так, это невозможно. Даже не имеет смысла писать что-то вроде: myvariable.name. Я не понимаю – Delta

+0

Не думаю, что я понимаю ваш вопрос. – Sethen

+1

Нет, это невозможно. –

ответ

1

Предполагая, что вы хотите что-то вроде этого:

function Log(data) 
{ 
    console.log(input variable name, data); 
} 

Тогда я не думаю, что это возможно:

Для удобства .. вы могли бы сделать что-то вроде

console.log({ "your variable name": your variable}); 

который превращает вход в объект, который содержит имя переменной, которое вы хотите зарегистрировать. Немного больше печатает, но, возможно, делает вывод на консоль более читаемым.

0

Существует возможность. А вот как

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 

Я надеюсь, что вы найдете способ не использовать это. :)

+0

, если 'pass_variable' не находится в глобальном пространстве, он не будет отображаться как' window [varname] '. И я не хочу, чтобы мои переменные отображались в глобальной области, чтобы регистрировать их. –

+0

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

+0

@JanDvorak, Да, подразумевается, что он находится в глобальной области. – Starx

Смежные вопросы