You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Заметим, что значение выражения `getCurrentUser().toUpperCase()` будет вычислено, и соответствующие функции вызваны -- лишь в том случае, если это необходимо, то есть когда функция вызвана без параметра.
В примере выше показаны Function Declaration и Named Function Expression. В синтаксисе выше довольно очевидно, что у этих функций есть имя `name`. В конце концов, оно указано в объявлении.
Copy file name to clipboardExpand all lines: 1-js/5-functions-closures/5-closures-module/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -295,7 +295,7 @@ var lodash = (function() {
295
295
296
296
Например, `defaults` из примера выше имеет доступ к `assignDefaults`.
297
297
298
-
Но снаружи программист, использующий модуль, может обращаться напрямую только к тем, которые экспортированы. Благодаря этому будут скрыты внутренние аспекты реализации, которые нужны только разработчику модуля.
298
+
Но снаружи программист, использующий модуль, может обращаться напрямую только к тем переменным и функциям, которые экспортированы. Благодаря этому будут скрыты внутренние аспекты реализации, которые нужны только разработчику модуля.
299
299
300
300
Можно придумать и много других вариаций такого подхода. В конце концов, "модуль" -- это всего лишь функция-обёртка для скрытия переменных.
Copy file name to clipboardExpand all lines: 1-js/5-functions-closures/7-with/article.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ with(obj) {
20
20
21
21
В примере ниже переменная будет взята не из глобальной области, а из `obj`:
22
22
23
-
```js run
23
+
```js run no-strict
24
24
var a =5;
25
25
26
26
var obj = {
@@ -36,7 +36,7 @@ with(obj) {
36
36
37
37
Попробуем получить переменную, которой в `obj` нет:
38
38
39
-
```js run
39
+
```js run no-strict
40
40
var b =1;
41
41
42
42
var obj = {
@@ -54,7 +54,7 @@ with(obj) {
54
54
55
55
Особенно забавно выглядит применение вложенных `with`:
56
56
57
-
```js run
57
+
```js run no-strict
58
58
var obj = {
59
59
weight:10,
60
60
size: {
@@ -80,7 +80,7 @@ with(obj) {
80
80
81
81
Например:
82
82
83
-
```js run
83
+
```js run no-strict
84
84
var obj = {
85
85
a:10
86
86
}
@@ -103,7 +103,7 @@ alert( obj.a ); // 20, переменная была изменена в объ
103
103
104
104
Например:
105
105
106
-
```js run
106
+
```js run no-strict
107
107
var obj = {
108
108
weight:10
109
109
};
@@ -127,7 +127,7 @@ alert( obj.a ); // 20, переменная была изменена в объ
127
127
128
128
Вот, к примеру, запустите этот код в современном браузере. Производительность функции `fast` существенно отличается `slow` с пустым(!) `with`. И дело тут именно в `with`, т.к. наличие этой конструкции препятствует оптимизации.
```smart header="`scrollLeft/scrollTop` можно изменять"
213
+
````smart header="`scrollLeft/scrollTop` можно изменять"
214
214
В отличие от большинства свойств, которые доступны только для чтения, значения `scrollLeft/scrollTop` можно изменить, и браузер выполнит прокрутку элемента.
215
215
216
-
[online]
216
+
```online
217
217
218
218
При клике на следующий элемент будет выполняться код `elem.scrollTop += 10`. Поэтому он будет прокручиваться на `10px` вниз:
0 commit comments