![]() |
Экземпляр класса
Для объявления класса по идее надо использовать следующуюю конструкцию:
Код:
var mySomeThing:MyClass = new MyClass();Код:
var mySomeThing:Object = new MyClass(); |
у меня не возникало даже если
Код:
var a=new MyClass(); |
CorC, потом возникнут :)
funkyDevil, ты не сможешь в таком случае использовать методы MyClass. Компилятор выдаст ошибку, что у объекта типа Object нет метода. |
да, а в чем возникнут? просто я так думаю тип резиновый и все...
|
Тип никакой, методов и свойств у переменной неизвестного типа нет. Во всяком случае ты не говоришь об этом компилятору, что они есть.
|
Насколько мне известно, тип Object присваивается объекту у которого не известный тип.
|
ну я не говорю что их нет, но говорю зато потом какие они есть, и вызываю их, но левых никакий не вызываю, что нить помешает этому?
|
Мешает отладке в дальнейшем.
|
Код:
var mySomeThing:Object = new MyClass();Код:
var mySomeThing = new MyClass();upd: CorC, спасибо поправил. |
что то одно и то же написано
|
Имелось ввиду без типизации. Без типизации, кстати, ещё хуже, чем с такой.
|
но зато присваивание хуже будет проходить, если тип не будет в точности равен установленному,
хотя это и правильно, но что то я уже привык из числа строку получать... надо бы отвыкать :) |
Цитата:
Код:
var mySomeThing:Object = 1; |
Ты имеешь права так делать только в AS1.
Проверять, оно, конечно ничего не будет, т.к. всё — наследники Object. |
Цитата:
Вопрос остался - если проверять не будет, чем лучше? |
Наличием знания у автора, что есть такая штука, как типизация.
|
Думаю, это лучше тем, что осознанно создавая такой объект(осознанно это подписывая к нему тип Object), вы для себя уже помечаете, что, мол, есть проблемный объект, который может вызвать скрытый сбой( без сообщения компилятора). И если у вас программа ведет себя непонятно, то вероятнее всего вы сначала проверите именно этот объект.
Потому что, если мы используем типизацию, то такой код: Код:
var myObj:NumberЦитата:
Код:
var myObj:Object |
Тип Object присваивается для указания того, что это данные не простого типа (Number, String, Boolean), а всё-таки объект с заданными свойствами. Если не указывать вообще, то хрен его знает, что это такое, объект, число, строка, булево значение или ещё что-нибудь.
|
Это придирки.
Если у меня есть проблеммный объект, я его помечаю примерно так ////////!!!!!!!!!!!!!!!!!!/////////// так по-моему проще заметить, а набрав в поиске !!! найти Но я понимаю вашу позицию. |
Цитата:
Так что можно не позорится и не присваивать ничего вообще. На скорость не влияет, на обработку ошибок тоже. |
Цитата:
|
Код:
var myObj:Object; |
Цитата:
|
Если мы пишем код и используем типизацию, то мы прописываем тип для всех объектов. Если у нас появляются объекты без указания типа, то значит мы непоследовательны. Либо мы сами не знаем тип объекта, что говорит о наших неполных знаниях AS.
|
Цитата:
|
Kikasso, с точки зрения компилятора без разницы. Речь идёт о том, какой смысл закладывается в указание Object. Для меня это значит, что объект не может быть простого типа. А если нифига не указано, то ждать можно чего угодно. В AS1 пожалуйста, пишите так.
|
Я не говорю о вопросах знания, незнания и подсознания, последовательности и непоследовательности.
Указывать тип Object все равно что не указывать ничего. Да оп чем мы тут спорим? pkfun, я видел, свой метод показал постом ниже. |
Цитата:
|
Ну, а кто говорил, что это разные вещи? Я говорил, что это хуже для разработчика, вот и всё. Компилятору все-равно.
CorC, у меня никогда такого не было, что нужен «резиновый» тип. |
ну тогда зачем такое во флеше предусмотрено?
по-моему это как раз не зря, именно для, не то что бы неопытных прогаммеров, просто для ленивых иногда проче просто заявить переменную без типа + ускоряется написание скриптов |
Цитата:
Ладно, мир дружба африка жевачка :drinks: |
Цитата:
|
В AS2/AS1 это не имеет различий для компилятора (потому как AS2 не существует, а в AS1 нет типизации в принципе). В AS3 имеет. Потому как там правильное интерпретирование типа указанного типа Object.
|
Цитата:
|
Цитата:
просто ужасть как интересно стало, про ECMAS |
|
| Часовой пояс GMT +4, время: 13:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.