Это больше о производительности и названии организации. Пространства имен содержат имена (аналогичные ключам объекта, но не ключам), которые содержат значения; квалифицированное имя похоже на ns::name
или на объект (не в стандарте AS3, я полагаю): ns[name]
или ns.name
. Имена пространств имен определяются путем помещения определений в (ns defn
). Такие квалифицированные имена, как ns::id
, могут быть легко оптимизированы компилятором AS3 (если это, скорее всего, компилятор байт-кода Adobe), главным образом, когда ns
- это не какое-либо выражение, а прямая ссылка на определение пространства имен, как правило. Например, во время компиляции, в зависимости от случая, ns::id
может просто раскрываться как ссылка на значение определения ns::id
, в противном случае может развернуться только id
, если это не выражение, отличное от Identifier
. в нечто большее, чем Identifier
, например, в байтах, иначе выражение не может быть оптимизировано. общее использование пространств имен можно наблюдать во время компиляции - если их использование не искажено, поскольку пространства имен также имеют свой собственный объект Namespace
и могут быть выражены.
namespace Iterator;
Iterator class IteratorStopClass
{...};
Iterator function getValues()
{...};
Обратите внимание, что такие объекты, как пространства имен, могут быть оптимизированы в зависимости от того, как они используются и наблюдаются ли они во время компиляции, но это вряд ли будет сделано любым компилятором.
const Iterator = {};
class IteratorStopClass
{...}
Iterator.IteratorStopClass = IteratorStopClass;
Iterator.getValues = function getValues()
{...};