Skip to content

Commit dd9a842

Browse files
committed
Add RU translation for 135 question number
1 parent 5b6a9e7 commit dd9a842

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

ru-RU/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4359,3 +4359,40 @@ console.log(info);
43594359
43604360
</p>
43614361
</details>
4362+
4363+
---
4364+
4365+
###### 135. Что будет на выходе?
4366+
4367+
```javascript
4368+
const handler = {
4369+
set: () => console.log('Added a new property!'),
4370+
get: () => console.log('Accessed a property!'),
4371+
};
4372+
4373+
const person = new Proxy({}, handler);
4374+
4375+
person.name = 'Lydia';
4376+
person.name;
4377+
```
4378+
4379+
- A: `Added a new property!`
4380+
- B: `Accessed a property!`
4381+
- C: `Added a new property!` `Accessed a property!`
4382+
- D: В лог ничего не попадёт
4383+
4384+
<details><summary><b>Ответ</b></summary>
4385+
<p>
4386+
4387+
#### Ответ: C
4388+
4389+
C помощью Proxy мы можем добавить собственное поведению объекту, которое мы передаем вторым аргументом. В нашем случае мы передаем объект `handler` который содержит свойства: `set` и `get`. `set` вызывается каждый раз когда мы _устанавливаем_ значения свойств, `get` же вызывается всякий раз когда мы _получаем_ значения свойств.
4390+
4391+
Первый аргумент — пустой объект `{}`, который является значением `person`. Для него будет добавлено собственное поведение, описанное в объекте `handler`. При добавлении значения для объекта `person` будет вызвано свойство `set`. При запросе к значению `person` вызовется свойство `get`.
4392+
4393+
Сначала мы устанавливаем новое свойство `name` для объекта Proxy (`person.name = "Lydia"`). Вызывается `set` и в лог попадает `"Added a new property!"`.
4394+
4395+
Затем мы обращаемся к значению Proxy-объекта. Вызывается свойство `get` объекта `handler`. `"Accessed a property!"` попадает в лог.
4396+
4397+
</p>
4398+
</details>

0 commit comments

Comments
 (0)