29 lines
No EOL
1 KiB
Markdown
29 lines
No EOL
1 KiB
Markdown
Решение:
|
||
|
||
```js
|
||
//+ 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` нет соответствующего свойства объекта, он конструирует ответ "на лету". Это нормально. Одна из целей существования геттеров/сеттеров -- как раз и есть изоляция внутренних свойств объекта, чтобы можно было их как угодно менять, генерировать "на лету", а внешний интерфейс оставался тем же. |