Создание Новых Объектов
И клиент и сервер JavaScript имеют строки предопределенных объектов. Кроме того, вы можете создавать ваши собственные объекты. Создание вашего собственного объекта требует двух шагов:
Определить тип объекта, написанной функции.
Создать образец объекта с new.
Чтобы определять тип объекта, создайте функцию для типа объекта, которая определяет его имя, и его свойства и методы. Например, пусть вы хотите создавать тип объекта для автомобилей. Вы хотите этот тип объектов, который будет назван 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)
Объект может иметь свойство, которое является самостоятельным другим объектом. Например, пусть вы определили объект с именем 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, чтобы включить свойство владельца, которое берет объект 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 как аргументов владельцев. Затем, если вы хотите выяснять имя владельца car2, вы можете обращаться к следующему свойству:
car2.owner.name
Заметьте, что вы можете всегда прибавлять свойства к предопределенному объекту. Например, утверждение:
car1.color = "black"
Прибавляет свойство color к car1, и присваивает ему значение " black". Однако, это не воздействует на любые другие объекты. Чтобы прибавить новое свойство ко всем объектам того же самого типа, вы должны прибавить свойство к определению типа объекта car.
Определение Методов
Вы можете определять методы для типа объекта включением определение метода на определении типа объекта. Например, пусть у вас есть набор файлов изображений GIF, и вы хотите определить метод, который показывает информацию для car, наряду с соответствующим изображением. Вы можете определить функцию типа:
function displayCar() {
var result = "A Beautiful " + this.year
+ " " + this.make + " " + this.model;
pretty_print(result)
}
Где pretty_print - предопределенная функция, которая показывает строку. Используйте this, чтобы обратиться к объекту, который принадлежит методу.
Вы можете делать функцию методом из car, прибавляя утверждение
This.displayCar = displayCar;
к определению объекта. Так, полное определение car теперь выглядит так:
function car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
this.displayCar = displayCar;
}
Вы можете вызывать этот новый метод следующим образом:
car1.displayCar ()
car2.displayCar ()
Это будет выглядеть подобно следующему выводу:
A Beautiful 1993 Eagle Talon TSi
A Beautiful 1992 Nissan 300ZX