en.javascript.info/1-js/8-oop/3-getters-setters/1-object-with-getters-setters/solution.md
Ilya Kantor 631be9c6ad typo
2015-04-10 17:42:42 +03:00

1 KiB
Raw Blame History

Решение:

//+ run
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 нет соответствующего свойства объекта, он конструирует ответ "на лету". Это нормально. Одна из целей существования геттеров/сеттеров -- как раз и есть изоляция внутренних свойств объекта, чтобы можно было их как угодно менять, генерировать "на лету", а внешний интерфейс оставался тем же.