regexp renovations
This commit is contained in:
parent
b2f6df9d45
commit
bf85f46cf9
24 changed files with 311 additions and 132 deletions
|
@ -63,7 +63,7 @@ sayHi('Вася');
|
|||
```
|
||||
|
||||
</li>
|
||||
<li>В конце выполнения функции объект с переменными обычно выбрасывается и память очищается.</li>
|
||||
<li>В конце выполнения функции объект с переменными обычно выбрасывается и память очищается. В примерах выше так и происходит. Через некоторое время мы рассмотрим более сложные ситуации, при которых объект с переменными сохраняется и после завершения функции.</li>
|
||||
</ol>
|
||||
|
||||
[smart header="Тонкости спецификации"]
|
||||
|
@ -144,8 +144,7 @@ say('Вася'); // Пока, Вася (**)
|
|||
|
||||
На момент первого запуска `(*)`, переменная `phrase` имела значение `'Привет'`, а ко второму `(**)` изменила его на `'Пока'`.
|
||||
|
||||
Это естественно, ведь для доступа к внешним переменным функция хранит ссылку `[[Scope]]` на весь внешний объект с ними, а не на каждое его свойство (переменную) по отдельности.
|
||||
|
||||
Это естественно, ведь для доступа к внешней переменной функция по ссылке `[[Scope]]` обращается во внешний объект переменных и берёт то значение, которое там есть на момент обращения.
|
||||
|
||||
## Вложенные функции
|
||||
|
||||
|
@ -182,7 +181,7 @@ getFullName.[[Scope]] = объект переменных текущего за
|
|||
|
||||
Благодаря этому `getFullName()` получает снаружи `firstName` и `lastName`.
|
||||
|
||||
Заметим, что если переменная не найдена во внешнем объекте переменных, то она ищется ещё более внешнем (через `[[Scope]]` внешней функции), то есть, такой пример тоже будет работать:
|
||||
Заметим, что если переменная не найдена во внешнем объекте переменных, то она ищется в ещё более внешнем (через `[[Scope]]` внешней функции), то есть, такой пример тоже будет работать:
|
||||
|
||||
```js
|
||||
//+ run
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue