Сегодня мы рассмотрим Свойство объекта, но для начала вот список статей на тему «Объекты в JavaScript»:
Свойство объекта в JavaScript
Свойство объекта — это именованный фрагмент содержащихся в объекте данных. Как говорилось ранее, свойства доступны с помощью применения к объекту операции, обозначаемой точкой (.). Например,
1 2 |
var myString = new String("Всем привет"); alert(myString.length); |
обеспечивает доступ к свойству length объекта String, на который ссылается переменная myString.
Попытка доступа к несуществующему свойству возвращает значение undefined:
1 2 |
var myString = new String("Всем привет"); alert(myString.noSuchValue); |
приведет к появлению другого диалогового окна: «undefined»
В прошлых главах вы также видели, как просто использовать свойства экземпляра ства, динамически добавляемые сценарием:
1 2 3 |
var myString = new String("Всем привет"); myString.simpleExample = true; alert(myString.simpleExample); |
Свойства экземпляра называются так потому, что они присутствуют только в экземпляре объекта, к которому они добавлены, и в противоположность свойствам типа String.length, которые обязательно присутствуют в любом экземпляре объекта String. Свойства экземпляра удобно использовать для расширения возможностей cуществующих объектов с целью их адаптации к выполнению конкретных задач.
Удалить свойства экземпляра можно с помощью операции delete. Следующий пример иллюстрирует удаление свойства экземпляра, добавленного в объект Szring:
1 2 3 4 |
vаг myString o new String("Всем привет"); myString.simpleExample = true; delete myString.simpleExample; alert("Значением myString.simpleExample является " + myString. SimpleExample); |
Результатом будет: «Значением myString.simpleExample является undefined»
Как видите, свойство simpleExample имеет значение undefined, как и любое другое существующее свойство.
доступ к свойствам с помощью синтаксиса массивов
Иногда более удобной альтернативой операции, обозначаемой точкой, является п к элементам массива ([ ]). Эта операция обеспечивает доступ к свойству, заданному строкой в скобках. Например:
1 2 3 4 5 |
var myString = new String("Всем привет"); alert(myString["length"]); myString["simpleExample"] = true; alert(myString.simpleExample); delete myString["simpleExample"]; |
Некоторые программисты предпочитают этот метод доступа к свойствам просто с целью однообразия стиля. Однако позже в этой же главе мы представим и другую причину, по которой этот метод оказывается более универсальным по сравнению с. синтаксисом операции точки — он позволяет устанавливать и читать свойства с произвольными именами (например, содержащими пробелы).
Методы
Свойства, являющиеся функциями, называются методами. Доступ к методам обычно осуществляется с помощью операции точки, аналогично доступу к свойствам. Следующий пример иллюстрирует вызов метода toUpperCase () объекта String:
1 2 |
var myString = new String("Я говорю не слишком громко? "); alert(myString.toUpperCase()); |
Можно использовать и синтаксис массива:
1 2 |
var myString = new String("Я говорю не слишком громко? "); alert(myString["toUpperCase"] () ); |
но такой вариант используется редко.
Установка методов экземпляра тоже аналогична установке свойств экземпляра:
1 2 3 |
var myString = new String("Я говорю не слишком громко? "); myString.sayNo = function() { alert("Да нет."); }; myString.sayNo(); |
Методы экземпляра наиболее полезны в случае пользовательских объектов. Если объект не является пользовательским, вы не знаете его внутренней структуры и поэтому не можете работать с ним так, как с объектом, созданным вами.