Показать сообщение отдельно
Старый 02.07.2008, 17:50
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 434  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от iNils Посмотреть сообщение
Нельзя. Или будешь спорить с спецификацией? Объект активации, это понятие плеера, а не понятие кода. Доступ к нему получить не возможно.
Добавил в пост выше (то что называется z - и есть ссылка на объект активации)

Цитата:
Сообщение от iNils Посмотреть сообщение
Гурского надо внимательнее читать Он написал, что на быстрые регистры перевели this и arguments, а не объект активации.
Точно.

Теперь продолжим с "доказывающим примером"

Код:
function b () {
	function c () {
		trace(this)
		z=this
	}
	c ();
}
setTimeout (b, 1000);

setTimeout(function(){
					trace(z)
ASsetPropFlags (z, null, null, 1);
		for (var i in z) {
			trace ("\t" + i + " = " + z[i]);
		}
					},2000)
выводит:
Код:
[type Object]
[type Object]
	c = [type Function]
	super = [type Function]
	arguments = 
	this =
Т.е. вложенная функция, как и положено имеет свой this указывающий на объект активации. ЧТД
А вот почему у функции-оболочки указатель this пустой - это надо спросить у тех, кто знает как устроены сетинтервалы и сеттаймауты.