This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

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

View file

@ -0,0 +1,25 @@
# Написать объект с геттерами и сеттерами
[importance 4]
Напишите конструктор `User` для создания объектов:
<ul>
<li>С приватными свойствами имя `firstName` и фамилия `surname`.</li>
<li>С сеттерами для этих свойств.</li>
<li>С геттером `getFullName()`, который возвращает полное имя.</li>
</ul>
Должен работать так:
```js
function User() {
/* ваш код */
}
var user = new User();
user.setFirstName("Петя");
user.setSurname("Иванов");
alert( user.getFullName() ); // Петя Иванов
```