Применение объектов ECMAScript
- Предыдущая страница Ориентированное на объекты
- Следующая страница Типы объектов
Создание и уничтожение объектов происходит в процессе выполнения JavaScript, понимание смысла этой парадигмы критически важно для понимания всего языка.
Декларация и instantiation
Создание объекта осуществляется с помощью ключевого слова new, за которым следует имя класса, который нужно instantiate:
var oObject = new Object(); var oStringObject = new String();
Первое предложение создает экземпляр класса Object и сохраняет его в переменной oObject. Второе предложение создает экземпляр класса String и сохраняет его в переменной oStringObject. Если в конструкторе нет параметров, скобки не обязательны. Поэтому можно переписать上面的 два предложения в следующем виде:
var oObject = new Object; var oStringObject = new String;
Ссылка на объект
В предыдущих главах мы介绍了Концепция типа ссылкиВ ECMAScript не доступна физическая репрезентация объекта, доступна только ссылка на объект. При каждом создании объекта в переменную сохраняется ссылка на объект, а не сам объект.
Уничтожение объекта
ECMAScript имеет систему сбора мусора (garbage collection routine), что означает, что не нужно специально уничтожать объекты для освобождения памяти. Когда больше нет ссылок на объект, объект считается废除 (dereference). При выполнении системы сбора мусора все废除енные объекты уничтожаются. После выполнения кода функции система сбора мусора запускается, чтобы освободить все локальные переменные, а также в некоторых других непредсказуемых ситуациях система сбора мусора также запускается.
Установление всех ссылок на объект в null может принудительно废除 объект. Например:
var oObject = new Object; // здесь что-то сделать с объектом oObject = null;
Когда переменная oObject устанавливается в null, ссылка на первый созданный объект больше не существует. Это означает, что при следующем выполнении программы сбора мусора объект будет уничтожен.
После использования объекта рекомендуется его废除, чтобы освободить память, это хорошая привычка. Это также гарантирует, что больше не будут использоваться объекты, которые уже не доступны, что предотвращает的出现 ошибок в дизайне программы. Кроме того, старые браузеры (например, IE/MAC) не имеют полного механизма сбора мусора, поэтому при卸рузке страницы объекты могут не быть правильно уничтожены. Удаление объекта и всех его свойств - это最好的 способ обеспечить правильное использование памяти.
Примечание:Будьте осторожны при удалении всех ссылок на объект. Если у объекта есть две или более ссылок, для правильного удаления объекта все его ссылки должны быть установлены в null.
Раннее и晚нее绑定
绑定(binding) - это метод объединения интерфейса объекта с его экземпляром.
Раннее绑定(early binding) означает определение свойств и методов объекта до его инстанцирования, что позволяет компилятору или интерпретатору предварительно преобразовать машинный код. В языках, таких как Java и Visual Basic, раннее绑定 позволяет использовать IntelliSense (функцию, предоставляющую список свойств и методов объекта разработчику) в среде разработки. ECMAScript не является сильнотипным языком и не поддерживает раннее绑定.
С другой стороны,晚绑定(late binding) означает, что компилятор или интерпретатор не знают типа объекта до выполнения. При использовании晚绑定 нет необходимости проверять тип объекта, достаточно проверить, поддерживает ли объект свойства и методы. Все переменные ECMAScript используют метод晚绑定. Это позволяет выполнять множество операций с объектами без任何 наказания.
- Предыдущая страница Ориентированное на объекты
- Следующая страница Типы объектов