Вернуть имя переменной
Всем привет. У меня такая задача: нужно вернуть имя переменной. Мне это нужно для отладки скрипта. Пишу небольшой плагин.
Пример: 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, время: 23:11. |