Вернуть имя переменной
Всем привет. У меня такая задача: нужно вернуть имя переменной. Мне это нужно для отладки скрипта. Пишу небольшой плагин.
Пример:
var number = 5;
function f(a){
/*Тут нужна функция для возврата имени переменной*/
return a;
}
alert(f(number));
Скрипт должен вывести "number", но никак не "5". Главное условие! Изначально, имя переменной неизвестно... Очень жду ответа, заранее спасибо! |
number.name='number'; |
Нее, так дело не пойдет!
Ладно, поставлю вопрос немного иначе. Можно ли получить список всех инициализованных переменных? И как это сделать? |
используйте нормальные инструменты для отладки
firebug |
конечно можеш. проверяй каждую из используемых переменых на её тип. та что не undefened-та инициализированна.только зачем изобретать велосипед если его до тебя изобрели)
|
Цитата:
var a; a инициализирована, но undefined. |
не инициализированна она по типу-ты ей никакое значение не присвоил чтобы было ясно текстовая числовая ....она
|
Ну ок.
var a = undefined; Или так var a = 1; //Много кода a = undefined; |
в смысле ты ей присваиваеш значение а она всё равно?
|
через tepeof проверяеш? а точно объявляеш её в теге скрипт?попробуй проверь её без много кода.
|
Я ничего не проверяю, не объявляю и не присваиваю. Я иллюстрирую, почему предложение плохое
Цитата:
Цитата:
Цитата:
Цитата:
Глаза режет. |
Дак тебе дали хорошее -через отладчик это делать.не нравиться не читай)ты програмер или лингвист?)
|
Цитата:
Цитата:
|
блеснул-конкретно блеснул.был тут недавно у нас один такойже в презедентах-Ющенко звался))
|
От вопроса ушли далеко. Как вернуть имя переменной?
var name = 'Вася';
function showme (a) {console.log (a.чтото+" = "+a);}
showme (name);
Должно вывести в консоль: "name = Вася" |
Отвечу сам, подсказали.
Функция:
function showMe(v) { console.log(v+'='+eval(v)); }
А теперь хитрость - вызов функции:
showMe ('v');
Обратить внимание, что v в кавычках - передаётся как строка. |
VitAl2013, что-то не работает:
var name = 'Вася';
function showMe(v) { console.log(v+'='+eval(v)); }
showMe (name);
че я делаю не так? |
Цитата:
var myVar = 12345;
function f(a) {
for(var i in window) if(window[i] === a) return i;
}
alert( f(myVar) );
Но это очень-очень-очень тупо. :) |
Ruslan_xDD, а теперь рассмотрим пракический вариант, а не выдуманный:
// чоткие пацаны не гадят в global
(function(){
var myVar = 12345;
function f(a) {
for(var i in window) if(window[i] === a) return i;
}
alert( f(myVar) );
})()
|
danik.js, ведь автор писал, что хочет сделать свой плагин. 100% автор захочет получить название переменной именно в global. :D
|
danik.js,
showMe ('name');
|
Ruslan_xDD,
А если значение переменной 1 и таких переменых с таким значением штук 100. Есть какой-то более грамотный механизм? мой пример с eval не всегда работает как надо - только для глобальных переменных, если они объявлены внутри функции, то увы.
var a, b, c;
function maximum(a, b) {
if (a>b){
c=a
console.log ("c = a ="+ a);
}
else{
c=b;
console.log ("c = b ="+ b);
}
for(var i in window) if(window[i] === c) {
alert (i);
return i;
}
}
maximum (1,2);
Вот например - выдаёт как не трудно догадаться всегда "с" |
| Часовой пояс GMT +3, время: 15:06. |