- •Обработчики событий в JavaScript. OnBlur onChange onClick onFocus onLoad ...
- •% (Modulus/целочисленный остаток)
- •- (Унарное Отрицание)
- •Операции Присвоения
- •Операции Сравнения
- •Использование Операций Равенства
- •Обратная Совместимость
- •Арифметические Операции
- •% (Modulus/целочисленный остаток)
- •- (Унарное Отрицание)
- •Побитовые Операции
- •Побитовые Логические Операции
- •Операции Побитового Сдвига
- •Логические Операции
- •Обратная Совместимость
- •Примеры
- •Строковые Операции
- •Синтаксис
- •Параметры
- •Описание
- •Синтаксис
- •Параметры
- •Описание
- •Примеры
- •Синтаксис
- •Примеры
Синтаксис
objectName = new objectType (param1 [,param2] ...[,paramN])
Параметры
objectName |
Имя нового экземпляра объекта. |
objectType |
Тип объекта. Должна существовать функция, определяющая тип объекта. |
param1...paramN |
Значения свойств объекта. Эти свойства являются параметрами, определёнными для функции objectType. |
Описание
Создание пользовательского типа объектов требует выполнения двух шагов:
Определить тип объекта путём написания функции.
Создать экземпляр объекта операцией new.
Для определения типа объектов создайте функцию, специфицирующую имя, свойства и методы объекта. Объект может иметь свойства, которые сами являются объектами. См. примеры ниже.
Вы всегда можете добавить свойство к ранее определённому объекту. Например, оператор car1.color = "black" добавляет свойство color к car1 и присваивает этому свойству значение "black". Однако это не влияет на другие объекты. Чтобы добавить новое свойство во все объекты данного типа, Вы обязаны добавить свойство в определение типа объектов car.
Вы можете добавить свойство к ранее определённому типу объектов, используя свойство Function.prototypefor. Оно определяет свойство, которое используется совместно всеми объектами, созданными этой функцией, а не только одним экземпляром этого типа. Следующий код добавляет свойство color во все объекты типа car, а затем присваивает значение свойству color объекта car1. См. дополнительно prototype, for.
Car.prototype.color=null car1.color="black" birthday.description="The day you were born"
Примеры
Пример 1: Тип объекта и экземпляр объекта. Предположим, вы хотите создать тип объекта для автомобилей/cars. Вы хотите, чтобы этот тип назывался car и чтобы он имел свойства make/изготовлен, model/модель и year/год. Для этого вы должны написать следующую функцию:
function car(make, model, year) { this.make = make this.model = model this.year = year }
Теперь можно создать объект mycar:
mycar = new car("Eagle", "Talon TSi", 1993)
Этот оператор создал mycar и присвоил специфицированные значения его свойствам. Теперь значением свойства mycar.make является строка "Eagle", mycar.year - целое число 1993 и т.д.
Вы можете создать любое количество объектов типа car путём вызова операции new. Например,
kenscar = new car("Nissan", "300ZX", 1992)
Пример 2: Свойство объекта, само являющееся другим объектом. Предположим, Вы определили объект person:
function person(name, age, sex) { this.name = name this.age = age this.sex = sex }
а затем инстанциируете (создаёте экземпляры) два новых person-объекта:
rand = new person("Rand McNally", 33, "M") ken = new person("Ken Jones", 39, "M")
Затем Вы можете переписать определение типа car для включения свойства owner, принимающего объект person:
function car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; }
Для инстанциации новых объектов Вы теперь используете:
car1 = new car("Eagle", "Talon TSi", 1993, rand); car2 = new car("Nissan", "300ZX", 1992, ken)
Вместо того чтобы передавать строковой литерал или целочисленное значение при создании объектов, вышеприведённые операторы передают объекты rand и ken в качестве параметров для свойства owner. Чтобы найти имя owner/владельца машины car2, Вы можете получить доступ к следующему свойству:
car2.owner.name
this
Ключевое слово this ссылается на текущий объект. Вообще, в теле метода this ссылается на вызывающий объект.
Реализовано в |
JavaScript 1.0 |
Версия ECMA |
ECMA-262 |