Нет. Переменные "в области видимости" определяются "цепочкой областей действия", которая недоступна программно.
Для деталей (довольно много), проверьте спецификацию ECMAScript (JavaScript). Вот ссылка на официальную страницу , где вы можете скачать каноническую спецификацию (а) PDF, и вот один к официальной, вулканизующемуся HTML версии.
Обновление на основе вашего комментария к Camsoft
Переменные в области видимости вашей функции события определяются тем, где вы определяете свою функцию события, а не тем, как они ее вызывают. Но вы можете найти полезную информацию о том, что доступно для вашей функции через thisаргументы и аргументы, выполнив что-то в соответствии с тем, на что указал KennyTM ( for (var propName in ____)), так как это скажет вам, что доступно для различных предоставленных вам объектов ( thisи аргументов; если вы не уверен, какие аргументы они вам дают, вы можете узнать через argumentsпеременную, которая неявно определена для каждой функции).
Таким образом, в дополнение к тому, что находится в области действия, из-за того, где вы определяете свою функцию, вы можете узнать, что еще доступно другими способами, выполнив:
var n, arg, name;
alert("typeof this = " + typeof this);
for (name in this) {
alert("this[" + name + "]=" + this[name]);
}
for (n = 0; n < arguments.length; ++n) {
arg = arguments[n];
alert("typeof arguments[" + n + "] = " + typeof arg);
for (name in arg) {
alert("arguments[" + n + "][" + name + "]=" + arg[name]);
}
}
(Вы можете расширить это, чтобы получить больше полезной информации.)
Вместо этого, однако, я бы, вероятно, использовал отладчик, такой как инструменты разработчика Chrome (даже если вы обычно не используете Chrome для разработки) или Firebug (даже если вы обычно не используете Firefox для разработки), или Dragonfly в Opera или «Инструменты разработчика F12» в IE. И прочитайте все файлы JavaScript, которые они вам предоставляют. И бить их по голове для правильных документов. :-)