-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExercise-8.txt
More file actions
67 lines (54 loc) · 2.72 KB
/
Copy pathExercise-8.txt
File metadata and controls
67 lines (54 loc) · 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
1. Для практикума из занятия 7 продумать, где можно применить замыкания.
function foodModule() {
let x = null;
let y = null;
function setFoodCoordinates( point ) {
x = point.x;
y = point.y;
}
function getFoodCoordinates() {
return { x: x, y: y };
}
function isFoodPoint( point ) {
return x === point.x && y === point.y;
}
return {
setFoodCoordinates: setFoodCoordinates,
getFoodCoordinates: getFoodCoordinates,
isFoodPoint: isFoodPoint
}
}
let food = foodModule();
2. Не выполняя кода, ответить, что выведет браузер и почему:
1)Так как все переменные созданные при помощи var создаются сразу же и только после этого начинается выполняться скрипт,
то на момент выполнения скрипта '"a" in window' переменная 'a === undefined' уже булет лежать в window
и поэтому в if мы не попадем поэтому alert выведет undefined
меня только напрягает то что пепеменная а в кавычках - по мне так это вообще не переменная а текст
if (!("a" in window)) {
var a = 1;
}
alert(a); // undefined
2)Функция 'a' не будет создана, она попадет в переменную 'b', в переменной
'b' будет лежать именно эта функция, но не в переменной 'a'
алерт выведет саму функцию
var b = function a(x) {
x && a(--x);
};
alert(a); // выведет function a(x) {x && a(--x);}
3) при таком методе декларации функции она будет создана это да выполнения скрипта, и при выполнении скрипта положит в переменную "а" эту функции и проигнорирует выполения скрипта 'var a' так как такая переменная уже есть поэтому скрипт выведет саму функцию
function a(x) {
return x * 2;
}
var a;
alert(a); // выведет function a(x) {return x * 2;}
4) скрипт "arguments[2] = 10;" положит в третий элемент параметра arguments 10 а потом алерт нам выведет 10 так как а и есть третий аргумент
function b(x, y, a) {
arguments[2] = 10;
alert(a);
}
b(1, 2, 3)
5) Не совсем понял данный код
function a() {
alert(this);
}
a.call(null);