Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 20.05.2010, 16:11
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 11  
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
а зачем это вообще определять?

Старый 20.05.2010, 16:14
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 12  
orcpochta

Регистрация: Feb 2008
Сообщений: 890
для защиты объекта в метод которого передается эта ф-ия

например, если это будет несвязанная ф-ия, в которой будет использован this, то при передаче этот this будет ссылаться на объект, в чей метод мы передали ф-ию => объект запустит в себя троянского коня, который сможет изнутри его расколбасить как угодно)))
__________________
скриптограф

Старый 20.05.2010, 16:22
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 13  
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
например, если это будет несвязанная ф-ия, в которой будет использован this, то при передаче этот this будет ссылаться на объект, в чей метод мы передали ф-ию => объект запустит в себя троянского коня, который сможет изнутри его расколбасить как угодно)))
Это есть в AS2 - там вообще даже методы классов на самом деле несвязные.
В AS3 анонимная ф-ция превращается в некое свойство какого-то глобального класса (Context?).
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			if (stage) a();
			else addEventListener(Event.ADDED_TO_STAGE, a);
		}
 
		private function a(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			trace("a:" + this)
			function b():void { trace("b:" + this); };
			b();
		}
 
	}
 
}
Цитата:
a:[object Main]
b:[object global]
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 20.05.2010 в 16:31.
Старый 20.05.2010, 16:36
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 14  
orcpochta

Регистрация: Feb 2008
Сообщений: 890
теперь если эту ф-ию b передать в какой-то метод, то она вернет this как объект, чей был метод
__________________
скриптограф

Старый 20.05.2010, 17:03
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 15  
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
orcpochta, никак. собственно на это я Вам уже намекнул. но вместо того, что бы осознать для чего писался текст, Вы пытались строить из себя К.О.

Старый 20.05.2010, 17:10
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 16  
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от orcpochta Посмотреть сообщение
теперь если эту ф-ию b передать в какой-то метод, то она вернет this как объект, чей был метод
Как бы у меня написано что возвращает трэйс:
Цитата:
b:[object global]
а не
Цитата:
b:[object Main]
__________________
Отряд Котовскага

Старый 20.05.2010, 17:18
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 17  
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
orcpochta, никак. собственно на это я Вам уже намекнул. но вместо того, что бы осознать для чего писался текст, Вы пытались строить из себя К.О.
какие интересные выводы)))

продолжу задавать вопросы:

как отличить статическую ф-ию от метода экземпляра?

describeType дает идентичные результаты:

Цитата:
//статический метод

<type name="builtin.as$0::MethodClosure" base="Function" isDynamic="false" isFinal="true" isStatic="false">
<extendsClass type="Function"/>
<extendsClass type="Object"/>
<accessor name="length" access="readonly" type="int" declaredBy="Function"/>
<accessor name="prototype" access="readwrite" type="*" declaredBy="builtin.as$0::MethodClosure"/>
</type>


//просто метод

<type name="builtin.as$0::MethodClosure" base="Function" isDynamic="false" isFinal="true" isStatic="false">
<extendsClass type="Function"/>
<extendsClass type="Object"/>
<accessor name="length" access="readonly" type="int" declaredBy="Function"/>
<accessor name="prototype" access="readwrite" type="*" declaredBy="builtin.as$0::MethodClosure"/>
</type>
и там, и там isStatic="false"

Или перефразирую вопрос: как добиться того, чтобы в метод передавался только статический метод? Или любой, но все остальные отсекались уже внутри метода?


BlooDHounD, у вас сейчас, кстати, получился крик души в стиле: "нельзя отличить статический метод от метода экземпляра - поэтому методами не надо пользоваться")))
__________________
скриптограф


Последний раз редактировалось orcpochta; 20.05.2010 в 17:21.
Старый 20.05.2010, 17:43
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 18  
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
каким боком Вы сюда describeType хотели приплести? Вы понимаете его назначение?

Старый 20.05.2010, 17:44
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 19  
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
каким боком Вы сюда describeType хотели приплести? Вы понимаете его назначение?
намек на то, что ф-ия - не объект?
__________________
скриптограф

Старый 20.05.2010, 17:44
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 20  
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
как отличить статическую ф-ию от метода экземпляра?
Вообще то это не про вложенные функции...)

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 13:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:52.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.