Чтение онлайн

ЖАНРЫ

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Object.keys(o)

Аргументы

о Объект.

Возвращаемое значение

Массив, содержащий имена всех перечислимых (неунаследованных) свойств объекта о.

Описание

Функция

Object.keys
возвращает массив с именами свойств объекта о. Массив включает только имена свойств, которые являются перечислимыми и определены непосредственно в объекте о: унаследованные свойства не включаются. (Для получения имен неперечислимых свойств можно использовать
функцию
Object.getOwnPropertyNames.
) Свойства в массиве следуют в том же порядке, в каком они перечисляются циклом
for/in
.

Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

Пример

Object.keys({х:1, у:2}) // => [”х", "у"]

См. также

Object.getOwnPropertyNames, разделы 5.5.4, 6.5

Object.preventExtensions (ECMAScript 5)

предотвращает добавление в объект новых свойств

Синтаксис

Object.preventExtensions(o)

Аргументы

о Объект, который должен иметь расширяемый набор атрибутов.

Возвращаемое значение

Объект о с аргументами.

Описание

Функция

Object.preventExtensions
присваивает значение false атрибуту
extensible
объекта о, вследствие чего в него нельзя будет добавлять новые свойства. Действие этой функции необратимо: нерасширяемый объект нельзя вновь сделать расширяемым.

Следует отметить, что

Object.preventExtensions
не воздействует на цепочку прототипов, и нерасширяемый объект все еще можно расширить новыми наследуемыми свойствами.

Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

См. также

Object.freeze, Object.isExtensible, Object.seal, раздел 6.8.3

Object.propertyIsEnumerable

проверяет, будет ли свойство видимо для цикла

for/in

Синтаксис

объект.propertyIsEnumerable(имя_свойства)

Аргументы

имя_свойства Строка, содержащая имя свойства объекта.

Возвращаемое значение

Возвращает true, если у объекта есть неунаследованное свойство с именем, указанным в аргументе имя_свойства, и если это свойство «перечислимое», т.е. оно может быть перечислено циклом

for/in
для объекта.

Описание

Инструкция

for/in
выполняет цикл по «перечислимым» свойствам объекта. Однако не все свойства объекта являются перечислимыми: свойства, добавленные в объект программным способом, перечислимы, а предопределенные
свойства (например, методы) встроенных объектов обычно неперечислимы. Метод
propertyIsEnumerable
позволяет установить различия между перечислимыми и неперечислимыми свойствами. Однако следует заметить: спецификация ECMAScript утверждает, что
propertyIsEnumerable
не проверяет цепочку прототипов, т.е. этот метод годится только для локальных свойств объекта и не предоставляет способа для проверки перечисляемости унаследованных свойств.

Пример

var о = new Object; // Создать объект

о.х = 3.14; // Определить свойство

о.propertyIsEnumerable(”х"); // true: х - локальное и перечислимое

о.propertyIsEnumerable("у"); // false о не имеет свойства у

о.propertyIsEnumerable("toString"); //false toString унаследованное свойство

Object.prototype.propertyIsEnumerable("toString“); // false: неперечислимое

См. также

Function.prototype, Object.hasOwnProperty; глава 6

Object.seal (ECMAScript 5)

предотвращает добавление и удаление свойств

Синтаксис

Object.seal(o)

Аргументы

о Объект, который должен стать нерасширяемым, с недоступными для настройки свойствами.

Возвращаемое значение

Объект в аргументе о.

Описание

Функция

Object.seal
делает объект о нерасширяемым (
Object.preventExtensions
), а все его собственные свойства - ненастраиваемыми. Это предотвращает добваление новых свойств и удаление существующих. Действие этой функции необратимо: нерасширяемый объект с ненастраиваемыми свойствами нельзя вновь сделать расширяемым объектом.

Имейте в виду, что

Object.seal
не делает свойства объекта доступными только для чтения; используйте для этого функцию
Object.freeze.
Отметьте также, что
Object.seal
не воздействует на унаследованные свойства. Если в цепочке прототипов объекта, обработанного функцией
Object.seal,
имеется расширяемый и настраиваемый объект, тогда имеется возможность добавлять и удалять наследуемые им свойства.

Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

См. также

Object.defineProperty, Object.freeze, Object.isSealed, Object.preventExtensions, раздел 6.8.3

Object.toLocaleString

возвращает локализованное строковое представление объекта

Синтаксис

объект.toLocaleString

Поделиться с друзьями: