update
This commit is contained in:
parent
962caebbb7
commit
87bf53d076
1825 changed files with 94929 additions and 0 deletions
|
@ -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` нет соответствующего свойства объекта, он конструирует ответ "на лету". Это нормально. Одна из целей существования геттеров/сеттеров -- как раз и есть изоляция внутренних свойств объекта, чтобы можно было их как угодно менять, генерировать "на лету", а внешний интерфейс оставался тем же.
|
|
@ -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() ); // Петя Иванов
|
||||
```
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue