Тема: UpJump: Q&A :)
Показать сообщение отдельно
  #163 (permalink)  
Старый 20.04.2011, 06:00
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

FINoM, нормальными средствами — никак. Потребуется либо разбирать код скриптом, чтобы достать объявления переменных, либо писать что-то вроде этого:

Function.prototype.scope = function () {
	var script = this.toString().replace(/function ?.*\([^)]*\)(?:\n|\s|\t)\{/, "").replace(/\}(?:\n|\t|\s)*$/, "").replace(/var +([а-яa-z0-9]+)/gi, "scope.$1");
	var scope = {};
	scope.scope = {};
	with (scope)
		eval(script);
	return scope.scope;
};


var x = function () {
	var p = 123;
};

alert(x.scope().p);


Давно писал. Можно заточить под свои нужды.
Ответить с цитированием