Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Приведение типов (http://www.flasher.ru/forum/showthread.php?t=137997)

TanaTiX 27.03.2010 17:57

Приведение типов
 
Есть функция (к примеру foo), которая возвращает uint: к примеру return 3;
trace(foo().toString()); выдает
Цитата:

Неявное приведение значения типа Function к несоответстсвующему типу String.
Почему возникает такая ошибка и как с этим бороться? Ведь по идее просто переводим числовое значение в строку...
Заранее спасибо.

ЗЫ. задачу постарался максимально упростить


Up. Помогло String(foo());
Из этого вопрос в чем отличие (кроме того, что один вариант работает, а другой нет) между String() и toString() и что когда лучше использовать?


Up2. wvxvw, спасибо

wvxvw 27.03.2010 21:11

У сложных объектов за исключением тех, которые наследуются от Proxy toString() и String(object) равнозначны, но String() будет медленнее потому, что вызовет toString(). У наследников Proxy toString() может быть неопределен. У null и undefined нет и не может быть методов, поэтому toString() у них вызвать нельзя.
То что вы видели - это скорее всего предупреждение (одно из дурацких в SDK), его вобщем-то лучше отключать, т.как никакй смысловой нагрузки оно не несет. Это на случай, если кто-то ошибся и хотел использовать метод как свойство - хотя за всею мою практику таких случаев было очень мало...


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

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