Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы говорили про объекты в Javascript. В данной статье я бы хотел продолжить эту тему и поговорить про свойства и методы типа данных Object в Javascript. У объекта значением свойства может быть любой тип данных, за исключением функций. Методом объекта может быть только функция (напоминаю, что функция в javascript также является типом данных). Встроенных свойств у типа данных Object нет. Методы этого типа данных наследуют все остальные встроенные в JavaScript типы данных.
Название |
Аргументы |
Что делает и что возвращает |
valueOf() |
- |
Возвращает элементарное значение |
toString() |
- |
Возвращает строковое значение |
hasOwnProperty(s) |
s – название свойства или метода |
Возвращает логическое значение true, если свойство или метод не унаследованы false, если свойства или метода с таким именем нет, или они были унаследованы |
toLocaleString() |
- |
Возвращает строковое значение в местном (локальном) формате |
isPrototypeOf(o) |
o – ссылка на объект |
Возвращает логическое значение true, если объект является прототипом для указанного объекта o false, если это не так |
propertyIsEnumerable(s) |
s – название свойства или метода |
Возвращает логическое значение true, если свойство или метод может быть перечислен с помощью инструкции for/in false, если свойства или метода с таким именем нет, или они были унаследованы |
Эти методы наследуются всеми классами-конструкторами (другими словами "Number()", "String()", "Array()" и т.д. наследуют все эти методы), и присутствуют у любого экземпляра любого типа данных. Пример:
var a = new Number(5);
alert(a.valueOf()); // выйдет 5
Методы "valueOf()" и "toString()" вызываются автоматически при работе с разными типами данных и зависят от контекста. Пара примеров:
alert('12' + 10); // выйдет 1210, был неявно вызван ToString() у '10'
alert('12' - 10); // выйдет 2, был неявно вызван valueOf() у '12'
Метод "toLocaleString()" применяется в основном для вывода данных, использующих локальные настройки, например, даты.
Метод "isPrototypeOf()" используется крайне редко для определения факта принадлежности объекта к прототипу другого объекта. На практике проверка типа данных осуществляется с помощью оператора "instanceOf" или свойства "constructor" у типа данных. О прототипах будет рассказано в одной из следующих статей.
Методы "propertyIsEnumerable()" и "hasOwnProperty()" предназначены для проверки возможности перечисления свойств и методов объекта. Унаследованные методы и свойства не могут быть перечислены – только те свойства и методы, которые были созданы напрямую для объекта. Приведу пример:
var room = {
square : 20
}
alert(room.propertyIsEnumerable('square')); // выведет true
alert(room.hasOwnProperty('square')); // выведет true
//А теперь, забегая вперёд, добавим свойство windows в прототип Object
Object.prototype.windows = 2;
alert(room.propertyIsEnumerable('windows')); // выведет false
alert(room.hasOwnProperty('windows')); // выведет false
В данной статье вы узнали про свойства и методы Object в Javascript.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.