Дескриптор свойства с данными имеет следующий вид:
{
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.
Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.
возвращает прототип своего аргумента. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.
Пример
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 - если нет.
Описание
Если в объект можно добавлять новые свойства, он является расширяемым. Все объекты сразу после создания являются расширяемыми и остаются таковыми, пока не будут переданы функции