Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<meta charset = "utf-8">
<title> Вставьте заголовок здесь </title>
<script type = "text/javascript">
/*
* 1. Все переменные в JS распространены.
2.JS не имеет статических переменных
3. Закрытие: переменные вне функции могут быть вызваны внутри функции; В противном случае это не может
*/
var r = 10;
Function test1 () {
var r2 = "abc";
// rewert (r)
}
// предупреждение (r2); // r2 внутри функции, к которой нельзя получить
test1 ();
// Вложенные функции в порядке
Функциональный тест2 (num1) {
Function Test3 (num2, num3) {
вернуть num2+num3+num1;
}
return Test3 (10,20)
}
// предупреждение (тест2 (30));
// -------------------------------------------------------------------------------------------------------------------------
function testfun () {
var r = 1;
var arr = [];
for (var x = 0; x <3; x ++) {
r ++;
arr [x] = function () {
возврат R;
}
}
возврат Arr;
}
Alert ("testfun:"+testfun ());
var arr2 = testfun ();
оповещение ("arr:"+arr2 [0]);
Alert ("arr:"+arr2 [1] ());
Alert ("arr:"+arr2 [2] ());
// ===== =
/*Проанализируйте причины:
Понять, какие функции в JavaScript?
Функция - это исполняемый блок кода, и функция также может быть представлена переменной, такой как второй способ определения функции.
var add = новая функция ("a", "вернуть a+10"); Основная сущность - указатель имени функции
Этот исполняемый код, созданный для переменных.
* Во -первых, после выполнения функции Testfun то же самое хранится в ARR [0], ARR [1] и ARR []
Исполняемый кодовой блок function () {
Возврат р
} Другими словами, приведенные выше три - просто переменные функции. Чтобы выполнить их, вам нужно добавить () только после имени переменной, и все будет в порядке.
И в это время значение r составляет 4
При выполнении arr [0] () эквивалентно выполнению кода в этом блоке кода.
Таким образом, конечный результат возвращает R, конечно, возвращает 4.
*/
</script>
</head>
<тело>
</body>
</html>