Альтернативно Вы можете создать объект в два этапа:
Определить тип объекта, написав конструктор функции.
Чтобы определить тип объекта, создайте функцию для типа объекта, которая специфицирует его имя , свойства и методы. Например, предположим, Вы хотите создать тип объекта для автомобилей и назвать его car, и чтобы он имел свойства make, model, year и color. Для этого нужно написать такую функцию:
function car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
Обратите внимание на использование this для присвоения значений свойствам объекта на базе значений, передаваемых в эту функцию.
Теперь можно создать объект с названием mycar:
mycar = new car("Eagle", "Talon TSi", 1993);
Этот оператор создаёт объект mycar и присваивает его свойствам специфицированные значения. Теперь значением свойства mycar.make является строка "Eagle", значением свойства mycar.year - целое число 1993 и так далее.
Можно создать любое количество объектов car с помощью оператора new. Например,
kenscar = new car("Nissan", "300ZX", 1992);
vpgscar = new car("Mazda", "Miata", 1990);
Объект может иметь свойство, которое само является объектом. Например, предположим, Вы определяете объект person:
function person(name, age, sex) {
this.name = name
this.age = age
this.sex = sex
}
и затем инстанциируете два новых объекта person:
rand = new person("Rand McKinnon", 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