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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.03.2010, 21:42
XDiaBLo вне форума Посмотреть профиль Отправить личное сообщение для XDiaBLo Найти все сообщения от XDiaBLo
  № 1  
Ответить с цитированием
XDiaBLo

Регистрация: Mar 2010
Сообщений: 51
По умолчанию Array() can also be invoked as a function.

Наткнулся на такое в документации:
Цитата:
Array() can also be invoked as a function.
Но как? Это же конструктор, как такое возможно и зачем? Полистал саму доку http://help.adobe.com/en_US/AS3LCR/F...0.0/Array.html, но так и не нашёл более подробной информации.
Благодарю за ответы.

Старый 24.03.2010, 01:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
1. Конструктор все-равно формально функция.
2. Array и Object изза своей ECMA-специфики (ну это мягко сказано) не являются классами в полном смысле этого слова. Т.е. они такие же классы, как и AS2 классы. Для Яваскрипта это наверное удобно, но для AS3 оно скорее вредно и непонятно зачем. Я просто стараюсь избегать Array(param) / new Array(), равно как и Object(param) / new Object(). На мой взгляд это скорее артефакт совместимости с ECMA чем что либо другое.
__________________
Hell is the possibility of sanity

Старый 24.03.2010, 03:15
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 3  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Но как? Это же конструктор, как такое возможно и зачем?
Имелось ввиду вот это: http://help.adobe.com/en_US/AS3LCR/F...ml#Array%28%29

Есть конструктор класса Array:
Код AS3:
var fubar:Array = new Array();
А есть top-level функция с названием Array:
Код AS3:
var fubar:Array = Array();

Это просто в дополнение к ответу wvxvw, если вдруг непонятно
__________________
Дело не в тебе

Старый 24.03.2010, 18:21
XDiaBLo вне форума Посмотреть профиль Отправить личное сообщение для XDiaBLo Найти все сообщения от XDiaBLo
  № 4  
Ответить с цитированием
XDiaBLo

Регистрация: Mar 2010
Сообщений: 51
Цитата:
Сообщение от wvxvw Посмотреть сообщение
1. Конструктор все-равно формально функция.
2. Array и Object изза своей ECMA-специфики (ну это мягко сказано) не являются классами в полном смысле этого слова. Т.е. они такие же классы, как и AS2 классы. Для Яваскрипта это наверное удобно, но для AS3 оно скорее вредно и непонятно зачем. Я просто стараюсь избегать Array(param) / new Array(), равно как и Object(param) / new Object(). На мой взгляд это скорее артефакт совместимости с ECMA чем что либо другое.
Формально или нет, но в С++ и Яве если я ничего не путаю, это запрещено, вызывать конструктор таким образом. Или как минимум не принято. Нужно через new. Поэтому и удивился. Ну ладно, проще игнорировать эту возможность. А что, в других классах тоже можно так конструктор вызывать как функцию?

Старый 24.03.2010, 18:26
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Перечитайте еще раз пост AL.exe

Старый 24.03.2010, 18:32
XDiaBLo вне форума Посмотреть профиль Отправить личное сообщение для XDiaBLo Найти все сообщения от XDiaBLo
  № 6  
Ответить с цитированием
XDiaBLo

Регистрация: Mar 2010
Сообщений: 51
Цитата:
Сообщение от udaaff Посмотреть сообщение
Перечитайте еще раз пост AL.exe
Тьфу чёрт, я глянул по его ссылке, и подумал что это описание конструктора класса. А это набор функций. Тогда понятно.

Старый 24.03.2010, 18:35
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нет, только те, которые являются одновременно ECMA и AS3:
Код AS3:
trace(Date(null), int(null), uint(null), Number(null), 
	Array(null), Object(null), RegExp(null), XML(null), 
	XMLList(null), String(null), Boolean(null));
 
trace(Date(null) is Date, int(null) is int, uint(null) is uint, Number(null) is Number, 
	Array(null) is Array, Object(null) is Object, RegExp(null) is RegExp, XML(null) is XML, 
	XMLList(null) is XMLList, String(null) is String, Boolean(null) is Boolean);
И по непонятной причине только Date вместо создания нового объекта Date делает какую-то ерунду.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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