Написать объект с геттерами и сеттерами
важность: 4
Напишите конструктор User
для создания объектов:
- С приватными свойствами имя
firstName
и фамилияsurname
. - С сеттерами для этих свойств.
- С геттером
getFullName()
, который возвращает полное имя.
Должен работать так:
function User() {
/* ваш код */
}
var user = new User();
user.setFirstName("Петя");
user.setSurname("Иванов");
alert( user.getFullName() ); // Петя Иванов
Решение:
function User() {
var firstName, surname;
this.setFirstName = function(newFirstName) {
firstName = newFirstName;
};
this.setSurname = function(newSurname) {
surname = newSurname;
};
this.getFullName = function() {
return firstName + ' ' + surname;
}
}
var user = new User();
user.setFirstName("Петя");
user.setSurname("Иванов");
alert( user.getFullName() ); // Петя Иванов
Обратим внимание, что для «геттера» getFullName
нет соответствующего свойства объекта, он конструирует ответ «на лету». Это нормально. Одна из целей существования геттеров/сеттеров – как раз и есть изоляция внутренних свойств объекта, чтобы можно было их как угодно менять, генерировать «на лету», а внешний интерфейс оставался тем же.