Разница между объектом и *? - PullRequest
       12

Разница между объектом и *?

5 голосов
/ 03 декабря 2011

Что следует использовать при объявлении переменной, как показано ниже:

private var someVar:*;

ИЛИ

private var someVar:Object;

В чем разница между ними?Что делает одного превосходящего другого в различных ситуациях?Есть примеры?

Спасибо.

Ответы [ 2 ]

10 голосов
/ 03 декабря 2011

someVar:* - это специальный нетипизированный var, который содержит значение по умолчанию undefined, в то время как

Object значение по умолчанию var равно null.

Это единственное ключевое отличие.

9 голосов
/ 03 декабря 2011

Из документации Adobe,

private var someVar:*;
private var someVar:Object;

В предыдущих версиях ActionScript переменной без аннотации типа автоматически назначался тип данных Object.Это больше не верно в ActionScript 3.0, который теперь включает идею действительно нетипизированной переменной.Переменные без аннотации типов теперь считаются нетипизированными.Если вы предпочитаете разъяснить читателям своего кода, что вы намерены оставить переменную нетипизированной, вы можете использовать новый символ звездочки (*) для аннотации типа, что эквивалентно пропуску аннотации типа.В следующем примере показаны два эквивалентных оператора, каждый из которых объявляет нетипизированную переменную x:

...