Создать объект
• Прямое измерение объекта
var o = {foo: "bar"}• Функция конструктора
var o = new Object ();
• Прототип наследование
var p = object.create (o);
Класс наследство
Объекты JavaScript имеют свои собственные свойства и унаследованные свойства.
• При запросе атрибута x объекта o сначала найдите атрибут x в o. Если это не найдено, ищите атрибут x в объекте прототипа O до x или объекта, прототип которого найден нулевой.
• При назначении значения атрибуту x объекта o, если уже есть свойство x в O, измените значение x. Если в O нет свойства x, создайте x -атрибут для O и назначьте значение.
• То есть цепочка прототипа будет работать только при запросе.
var O = {x: 1}; function p () {this.y = 2; } P.prototype = o; var t = new p (); console.log (t); console.log ('x' in t); // true console.log (t.hasownproperty ('x')); // falseВы можете использовать в или HasownProperty, чтобы определить, есть ли в объекте свойства.
Свойства объекта
• Передача через свойства объекта
Вы можете использовать для .. для пересечения свойств объекта
При использовании для .. IN, итерации над свойствами на цепочке прототипа. Орден обхода состоит в том, чтобы пройти с приоритетом
Следовательно, использование HasownProperty может определить, является ли это собственным атрибутом объекта.
• Свойства свойств объекта
Используйте object.getOwnPropertyDescriptor (), чтобы получить дескриптор для объектного свойства
Записывается, означает, является ли атрибут объекта, который можно записать
Например
var o = {foo: 'bar'} object.defineproperty (o, "foo", {writeable: false}); o.foo = 'world'; console.log (o.foo); //Перечисляемое означает, является ли атрибут объекта перечисленным
Например
Перечисляемое из длины и других атрибутов в массиве является ложным, поэтому
for (p в массиве) {console.log (p);}Ничего вывода
Настраиваемая означает, можно ли изменять конфигурируемость и перечисление свойств.
Эти свойства конфигурации могут быть определены с помощью object.defineProperties.
Object.defineproperty (o, "foo", {writeble: false});
Получить значение метод получения объекта
SET представляет метод для установки свойств объекта
Пример
var book = {_year: 2004, издание: 1}; object.defineproperty (book, "Год", {get: function () {console.log ('get Год'); вернуть это._year;}, set: function (newvalue) {console.log ('set year'); if (newvalue> 2004) NewValue - 2004;Объектный метод
ToString преобразует объекты в строки. Преобразование по умолчанию будет чем -то вроде [объекта объекта], поэтому, если вам нужно преобразовать его в формат JSON, вы можете использовать json.stringify
Значение необходимо использовать при преобразовании объектов в другие типы. Точно так же нет ничего, что стоит сказать о преобразовании по умолчанию.
Исполняемый объект
Вы можете создать исполняемый объект с помощью следующего метода
Функциональная панель (o) {var f = function () {return "Hello World!"; } o .__ Proto__ = f .__ Proto__; f .__ Proto__ = O; возврат f;} var o = {x: 5}; var foo = bar (o); console.log (foo ()); console.log (foo.x); console.log (typeof foo); // ФункцияЕго можно использовать в качестве объекта (с цепочкой прототипа) или в качестве функции, чтобы назвать его напрямую