2016-01-26 2 views
0

Было бы неплохо иметь супер быстрый способ сделать это:Сокращение для "console.log (" var: "+ var)"?

"console.log("var: " + var)"? 

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

var mLog = function(varNameStr){ 
    console.log(varNameStr + ": " + _____); 
} 

EDIT: Судя по результатам прибегая к помощи «получить имя строки переменной JS», похоже, не существует простой способ, чтобы захватить имя тетиву переменная из ссылки (вам нужно создать хеш-таблицы или другие структуры, которые делают ее нецелесообразной.)

Таким образом, единственным возможным решением было бы преобразование строки в ссылку на переменную. Возможно ли это в JS?

+2

я имею в виду, если ваши передавая имя варов строки в любом случае вы могли бы сделать что-то вроде вара Mlog = функции (varStr, вар) { console.log (varStr + ":" + вар } и называть его как mLog («var», var); – bradimus

+0

Это невозможно вообще, потому что вы не можете получить доступ к области локальной переменной как к объекту. –

+0

Вы можете сделать это для объекта, но не для переменной. obj.getClass(). GetName() Что относительно макроса (например, макроса JetBrains)? Какая IDE или редактор вы используете? – BryanT

ответ

2

Следующее выполнит трюк. Передайте ему имя переменной в виде строки.

var mLog = function(varStr){ 
    console.log(varStr + ": " + eval(varStr)); 
} 

Пример:

> var strVar = 'A string variable'; 
> mLog('strVar'); 
< strVar: A string variable 

> var arrVar = [1,2,3]; 
> mLog('arrVar'); 
< arrVar: 1,2,3 
+1

... только если 'mLog' имеет переменную в области – josh3736

+0

Правда. Это одно из требований? –

1

Там нет никакого способа, чтобы "извлечь" имя переменной, поскольку переменные не являются на самом деле данные. Самое близкое, что вы можете сделать, это использовать его для объектов. Что-то вроде:

var obj= { 
     prop: 'value' 
    }; 

function mLog(object, prop) { 
    console.log(prop + ': ' + object[prop]; 
} 

mLog(obj, 'prop'); 
Смежные вопросы