Объекты в функциях

Последнее обновление: 1.11.2015

Функции могут возвращать значения. Но эти значения не обязательно должны представлять примитивные данные - числа, строки, но также могут быть сложными объектами.

Например, вынесем создание объекта user в отдельную функцию:

function createUser(pName, pAge) {
	return {
		name: pName,
		age: pAge,
		displayInfo: function() {
			document.write("Имя: " + this.name + " возраст: " + this.age + "<br/>");
		}
	};
};
var tom = createUser("Tom", 26);
tom.displayInfo();
var alice = createUser("Alice", 24);
alice.displayInfo();

Здесь функция createUser() получает значения pName и pAge и по ним создает новый объект, который является возвращаемым результатом.

Преимуществом вынесения создания объекта в функцию является то, что далее мы можем создать несколько однотипных объектов с разными значениями.

Кроме того объект может передаваться в качестве параметра в функцию:

function createUser(pName, pAge) {
	return {
		name: pName,
		age: pAge,
		displayInfo: function() {
			document.write("Имя: " + this.name + " возраст: " + this.age + "<br/>");
		},
		driveCar: function(car){
			document.write(this.name + " ведет машину " + car.name + "<br/>");
		}
	};
};

function createCar(mName, mYear){
	return{
		name: mName,
		year: mYear
	};
};
var tom = createUser("Том", 26);
tom.displayInfo();
var bently = createCar("Бентли", 2004);
tom.driveCar(bently);

Здесь используются две функции для создания пользователей и объекта машины. Метод driveCar() объекта user в качестве параметра принимает объект car.

В итоге браузер нам выведет:

Имя: Том возраст: 26
Том ведет машину Бентли
Помощь сайту
WebMoney
  • P378451176208
  • Z280152397659
ЮMoney/Яндекс-Деньги
  • 410011174743222
PayPal
  • metanit22@mail.ru
Перевод на карту
  • Номер карты: 4048415020898850