и экземпляр объекта. Предположим, вы
Пример 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
Содержание раздела