Параметр:
(1) OBJ
Необходимый. Имя переменной, которой назначается объект объекта.
(2) значение
Необязательный. Любой примитивный тип данных JavaScript (номер, логический или строка). Если значение является объектом, возвращаемый объект неизменен. Если значение является нулевым, «неопределенным» или «не предоставленным», создается объект без контента.
Методы объекта объекта
Когда объект используется в качестве конструктора, он может принять параметр. Если параметр является объектом, он напрямую вернет объект; Если это значение исходного типа, он вернет объект обертки, соответствующий значению. Используя это, вы можете написать функцию, которая определяет, является ли переменная объектом.
Функция isobject (value) {return value === Object (value);}Есть два способа развертывания метода на объекте объекта.
Развернуть в самом объекте объекта
Развернуть в объекте. Прототип объект
Метод object.keys очень похож на метод Object.getOwnPropertyNames и обычно используется для прохождения свойств объекта. Их параметры - все это объект, и все они возвращают массив, а члены массива - все имена атрибутов самого объекта (а не унаследованные). Разница между ними заключается в том, что первые возвращают только перечисляемые атрибуты, в то время как последний также возвращает непонятные имена атрибутов. Поскольку массив имеет неэффективную длину атрибута, массив, как правило, пересекается с объектом.
JavaScript не предоставляет метод для расчета количества свойств объекта, который можно получить через Object.keys (o) .length и Object.getOwnPropertyNames (O) .lugne.
Метод объекта.
Методы, связанные с цепочкой прототипа:
Object.Create (): генерировать новый объект и прототип объекта.
Object.getPrototypeof (): получает объект прототипа объекта.
Методы объекта объекта объекта
Object.prototype.valueof (): функция значения метода состоит в том, чтобы вернуть значение объекта, и по умолчанию сам объект возвращается. Основная цель этого метода состоит в том, что этот метод будет вызван по умолчанию, когда JavaScript автоматически преобразует тип.
Object.prototype.toString (): функция метода ToString заключается в возвращении строковой формы объекта. Когда объект используется для добавления строки, метод ToString называется автоматически.
Используя метод вызова, вы можете вызвать метод object.prototype.tostring на любом значении, чтобы определить тип этого значения. Возвращаемое значение метода ToString различных типов данных заключается в следующем:
Значение: возврат [номер объекта]
Строка: return [string string объекта]
Boolean: Возврат [объект логический]]
Неопределенный: вернуть [объект неопределенным]
null: return [объект null]
Объект: возвращает "[объект" + имя конструктора + "]"
Object.prototype.tostring.call (2) // "[object umber]" object.prototype.tostring.call ('') // "[Object String]"Используя эту функцию, вы можете написать функцию суждения типа, которая является более точной, чем оператор TypeOF.
var type = function (o) {var s = object.prototype.tostring.call (o); return s.match (// [object (.*?)/]/) [1] .tolowercase ();}; type ({}); // «объект» тип ([]); // тип "массива" (5); // "число"На основе функции вышеупомянутого типа вы также можете добавить метод, который специально определяет определенный тип данных.
['Null', 'undefined', 'Object', 'Array', 'String', 'number', 'boolean', 'function', 'regexp', 'element', 'nan', 'infinite']. Foreach (t) {type ['is' + t] = function (o) {return type (o) === t };}); type.isobject ({}); // truetype.isnumber (nan); // falsetype.iselement (document.createElement ('div')); // истинныйМодель атрибута объекта
В JavaScript каждый атрибут имеет соответствующий объект атрибутов, который сохраняет некоторую мета -информацию атрибута. Используйте метод object.getownpropertydescriptor, чтобы считать объект атрибутов атрибута p объекта O. Объект атрибутов содержит следующую мета -информацию:
Значение: представляет значение этого свойства, которое не определено по умолчанию (до тех пор, пока один из записей и настраиваемых является истинной, его можно изменить).
Запись: указывает, можно ли изменить значение этого свойства, по умолчанию верно.
Перечисляемое: указывает, является ли атрибут перечисленным, по умолчанию верно, то есть атрибут будет отображаться в таких операциях, как… in in in in out and object.keys (). Вообще говоря, системные свойства нативных свойств (то есть не определенные свойства) не являются перечисленными.
Указывает «конфигурируемость», по умолчанию TRUE. Если установить на FALSE, это означает, что атрибут не может быть удален, и объект атрибутов не должен быть изменен (кроме атрибута значения, если записывается, что это истинно, значение все еще может быть изменено), то есть настраиваемое атрибут управляет отчетностью объекта атрибутов.
Функция значения (getter), представляющая это свойство, по умолчанию не определено.
Функция хранения значений (установка), представляющая это свойство, по умолчанию не определено.
var o = {p: 'a'}; object.getownpropertydescriptor (o, 'p'); // object {// value: "a", // Запись: true, // перечислен: true, // confintaven: true //}Метод Object.DefineProperty позволяет определить или изменить атрибут, определяя объект атрибута, а затем возвращает модифицированный объект. Формат заключается в следующем:
Object.DefineProperty (Object, PropertyName, AttributeObject)
Метод Object.DefineProperty принимает три параметра, первым является объект, где находится свойство, второе - это имя свойства (оно должно быть строкой), а третьим является объект описания свойства. С помощью этого метода значения по умолчанию записей, настраиваемых и перечисленных свойств объекта свойства являются ложными.
Object.defineproperty (o, "p", {value: "bar"}); object.getownpropertydescriptor (o, 'p'); // object {// value: "bar", // Запись: false, // перечисляется: false // configatored: false //}Если несколько свойств определены или изменены одновременно, вы можете использовать метод Object.DefineProperties. Следует отметить, что после определения функции значения (или набора функций хранения значений), записываемое можно установить на TRUE, или атрибут значения определяется одновременно, в противном случае будет сообщена ошибка.
var o = object.defineproperties ({}, {p1: {value: 123, enumerable: true}, p2: {value: "abc", перечисляется: true}, p3: {get: function () {return this.p1 + this.p2}, enumerable: true, конфигурируется: true}});Перечисляемое можно использовать для установки «секретного» свойства. Если перечисление свойства является false, то для .. IN LOOP, метод Object.Keys и метод JSON.Stringify не получит свойство, но его значение может быть получено непосредственно через O.XX.
Разница между методом для… в цикле и методом Object.Keys заключается в том, что первый включает свойства объекта, унаследованного от объекта прототипа, в то время как последний включает только свойства самого объекта. Если вам нужно получить все свойства самого объекта, независимо от значения перечисленного, вы можете использовать метод object.getownPropertyNames.
Конфигурируемость определяет, можно ли удалить переменную. Когда переменная объявляется с использованием команды VAR, настраиваемая переменная является false, и когда переменная объявляется с использованием команды VAR (или переменная, объявляется с использованием назначения атрибута), конфигурируемость переменной является TRUE. Это означает, что удаление может только удалить свойства объекта.
var a1 = 1; // конфигурируется: falsesea2 = 1; // настраивается: true (эквивалентно этому.a2 = 1)
В дополнение к прямому определению, свойства также могут быть определены с использованием функций доступа. Среди них функция хранения значений называется Setter, которая использует команду SET; Функция сбора значений называется Getter, которая использует команду GET. Используя функцию доступа, может быть реализовано двусторонняя привязка между объектами данных и объектами DOM.
Object.defineproperty (user, 'name', {get: function () {return document.getElementbyId ("foo"). Value}, set: function (newValue) {document.getElementById ("foo"). Value = newValue;}, настраивается: true});Статус объекта управления
JavaScript предоставляет три метода для точного управления состоянием чтения и записи объекта и предотвращения изменения объекта. Самым слабым слоем защиты является предотвращение экспенсов, за которыми следуют уплотнение, сильнейшее замораживание.
Метод object.preventextensions может сделать объект неспособным добавить новые свойства, но он может использовать команду Delete для удаления существующих свойств. Способ object.isextensible может быть использован для проверки, можно ли добавить объект.
Метод Object.seal делает невозможным, чтобы объект мог добавлять новые свойства или удалять старые свойства. Object.Seal также устанавливает настраиваемый атрибут объекта атрибутов существующих атрибутов FALSE, чтобы объект атрибутов больше нельзя изменить. Метод объекта. Используется для проверки, использует ли объект метод Object.seal.
Метод Object.Freeze может сделать объект невозможным добавить новые атрибуты, удалять старые атрибуты и изменить значение атрибутов, что делает этот объект фактически постоянным. Метод Object.ifrrozen используется для проверки того, использует ли объект метод object.freeze ().
Используйте приведенные выше методы, чтобы заблокировать записи объекта, но вы все равно можете добавить к нему свойства, изменив объект прототипа объекта.
var O = new object (); object.preventextensions (o); var proto = obj
Одним из решений является заморозить прототип.
var o = object.seal (object.create (object.freeze ({x: 1}), {y: {value: 2, writeble: true}})); objPS:
Объект объекта включен во все другие объекты JavaScript; Все его методы и свойства доступны для всех других объектов. Методы могут быть пересмотрены в пользовательских объектах и вызваны JavaScript в соответствующее время. Метод ToString является примером часто переопределенного метода объекта.
В этом языке ссылка на описание каждого метода объекта включает в себя информацию о реализации по умолчанию и объекту для внутреннего объекта JavaScript.
С точки зрения совместимости IE, документ Microsoft MSDN - «объект объекта был введен в Internet Explorer до Internet Explorer 6», так что не волнуйтесь ~