Basics

Создание объектов

Объекты создаются путем вызова специальных функций конструкторов. Все следующие строки создают новые объекты:

var o = new Object();
var now = new Date();
var pattern = new RegExp("\\sjava\\s", "i");

Создав собственный объект, можно как угодно его использовать и устанавливать свойства:

var point = new Object();
point.x = 2.3;
point.y = 1.2;

Объектные литералы

В JavaScript определяется синтаксис объектных литералов, позволяющий создавать объекты и указывать их свойства. Объектный литерал (также называемый "инициализатором объекта") представляет собой список разделенных запятыми пар «свойство/значение», заключенных в фигурные скобки. Роль разделителя внутри пар играет двоеточие. Таким образом, объект point из предыдущего примера также может быть создан и инициализирован следующей строкой:

var point = { x:2.3, y:1.2 };

Объектные литералы могут быть вложенными. Например:

var rectangle = { 
 upperLeft: { x: 2, y: 2 },
 lowerRight: { x: 4, y: 4 }
};

Наконец, значениями свойств в объектных литералах не обязательно должны быть константы – это могут быть произвольные JavaScript-выражения. Кроме того, в качестве имен свойств объектных литералов допускается использовать строковые значения:

var square = { 
               "upperLeft": { x:point.x, y:point.y },
               'lowerRight': { x:(point.x + side), y:(point.y+side) }
};

Преобразование объектов

Когда непустой объект используется в логическом контексте, результатом преобразования является значение true. Когда объект используется в строковом контексте, преобразование выполняется методом toString() объекта, и в дальнейших вычислениях участвует строка, возвращаемая этим методом. Когда объект используется в числовом контексте, сначала вызывается метод объекта valueOf(). Если этот метод возвращает числовое значение примитивного типа, в дальнейших вычислениях участвует это значение. Однако, в большинстве случаев метод valueOf() возвращает сам объект. В такой ситуации сначала объект преобразуется в строку вызовом метода toString(), а затем выполняется попытка преобразовать строку в число.

Last updated