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

ЖАНРЫ

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

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

{

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

writable: /* true или false */,

enumerable: /* true или false */,

configurable: /* true или false */

}

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

{

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

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

enumerable: /* true или false */,

configurable: /* true или false */

}

См. также

Object.defineProperty, раздел 6.7

Object.getOwnPropertyNames (ECMAScript 5)

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

Синтаксис

Object. getOwnPropertyNames(o)

Аргументы

о Объект.

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

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

Описание

Функция

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

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

Пример

Object.getOwnPropertyNames([]) // => ["length"]: "length" - неперечислимое

См. также

Object.keys, раздел 6.5

Object.getPrototypeOf (ECMAScript 5)

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

Синтаксис

Object.getPrototypeOf(о)

Аргументы

о Объект.

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

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

Описание

Функция

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

Пример

var р = {}; // Обычный объект

Object.getPrototypeOf(р) // => Object.prototype

var о = Object.create(p) // Объект, наследующий объект р

Object.getPrototypeOf(о) // =>
р

См. также

Object.create; глава 6

Object.hasOwnProperty

проверяет, является ли свойство унаследованным

Синтаксис

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

Аргументы

имя_свойства

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

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

Возвращает true, если объект имеет неунаследованное свойство с именем, заданным в имени_свойства. Возвращает false, если объект не имеет свойства с указанным именем или если он наследует это свойство от своего объекта-прототипа.

Описание

В главе 9 говорится, что JavaScript-объекты могут иметь собственные свойства, а также наследовать свойства от своих объектов-прототипов. Метод

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

Пример

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

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

о.hasOwnProperty("x");
// Вернет true: х - это локальное свойство о

о.hasOwnProperty("y");
// Вернет false: о не имеет свойства у ");

о.hasOwnProperty("toString")
// Вернет false: свойство toString унаследовано

См. также

Function.prototype, Object.propertyIsEnumerable; глава 9

Object.isExtensible (ECMAScript 5)

возможно ли добавить в объект новое свойство?

Синтаксис

Object.isExtensible(o)

Аргументы

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

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

true, если в объект можно расширить новыми свойствами, и false - если нет.

Описание

Если в объект можно добавлять новые свойства, он является расширяемым. Все объекты сразу после создания являются расширяемыми и остаются таковыми, пока не будут переданы функции

Object.preventExtensions, Object.seal
или
Object.freeze.

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