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

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

Пример

<b>function constant(o, n, v) { // Определить константу о.n со значением v </b>

<b>  Object.defineProperty(o, n, { value: v, writable: false</b>

<b>    enumerable: true, configurable:false});</b>

<b>}</b>

См. также

Object.create(), Object.defineProperties(), Object.getOwnPropertyDescriptor(), раздел 6.7

Object.freeze() (ECMAScript 5)

делает объект неизменяемым

Синтаксис

<b>Object.freeze(o)</b>

Аргументы

о Объект, который должен быть зафиксирован.

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

Зафиксированный объект о.

Описание

Функция

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

Имейте в виду, что функция

<b>Object.freeze()</b>
устанавливает атрибут writable, имеющийся только в свойствах-данных. Она не действует на свойства, имеющие методы записи. Отметьте также, что функция
<b>Object.freeze()</b>
не действует на унаследованные свойства. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

См. также

Object.defineProperty(), Object.isFrozen(), Object.preventExtensions(), Object.seal(), раздел 6.8.3

Object.getOwnPropertyDescriptor() (ECMAScript 5)

возвращает атрибуты свойства

Синтаксис

<b>Object.getOwnPropertyDescriptor(o, имя)</b>

Аргументы

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

имя Имя свойства (или индекс элемента массива), атрибуты которого требуется получить.

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

Объект дескриптора для указанного свойства заданного объекта или undefined, если такое свойство не существует.

Описание

Функция

<b>Object.getOwnPropertyDescriptor()</b>
возвращает дескриптор для указанного свойства заданного объекта. Дескриптор свойства - это объект, описывающий атрибуты и значение свойства. Более полная информация приводится в следующем подразделе. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

Дескрипторы свойств

Дескриптор свойства - это обычный JavaScript-объект, описывающий атрибуты (и иногда значение) свойства. В языке JavaScript существует два типа свойств. Свойства-данные, имеющие значение и три атрибута:

<b>enumerable, writable</b>
и
<b>configurable</b>
. Свойства с методами доступа, имеющие метод чтения и/или метод записи, а также атрибуты
<b>enumerable</b>
и
<b>configurable</b>
.

Дескриптор свойства с данными имеет следующий вид:

<b>{</b>

<b>value: /* любое значение, допустимое в языке JavaScript */,</b>

<b>writable: /* true или false */,</b>

<b>enumerable: /* true или false */,</b>

<b>configurable: /* true или false */</b>

<b>}</b>

Дескриптор свойства с методами доступа имеет следующий вид:

<b>{</b>

<b>get: /* функция или undefined: взамен свойства value */,</b>

<b>set: /* функция или undefined: взамен атрибута writable */,</b>

<b>enumerable: /* true или false */,</b>

<b>configurable: /* true или false */</b>

<b>}</b>

См. также

Object.defineProperty(), раздел 6.7

Object.getOwnPropertyNames() (ECMAScript 5)

возвращает имена неунаследованных свойств

Синтаксис

<b>Object. getOwnPropertyNames(o)</b>

Аргументы

о Объект.

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

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

Описание

Функция

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

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

Пример

<b>Object.getOwnPropertyNames([]) // =&gt; [&quot;length&quot;]: &quot;length&quot; - неперечислимое</b>

См. также

Object.keys(), раздел 6.5

Object.getPrototypeOf() (ECMAScript 5)

возвращает прототип объекта

Синтаксис

<b>Object.getPrototypeOf(о)</b>

Аргументы

о Объект.

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

Прототип объекта о.

Описание

Функция

<b>Object.getPrototypeOf()</b>
возвращает прототип своего аргумента. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.