Объекты в функциях
Функции могут возвращать значения. Но эти значения не обязательно должны представлять примитивные данные - числа, строки, но также могут быть сложными объектами.
Например, вынесем создание объекта user
в отдельную функцию:
function createUser(pName, pAge) {
return {
name: pName,
age: pAge,
displayInfo: function() {
document.write("Имя: " + this.name + " возраст: " + this.age + "
");
}
};
};
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 + "
");
},
driveCar: function(car){
document.write(this.name + " ведет машину " + car.name + "
");
}
};
};
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
Том ведет машину Бентли