Ответ 1
Мы используем функцию самоисполнения, чтобы управлять областью переменных.
Область действия переменной - это область вашей программы, в которой она определена. Глобальная переменная имеет глобальный масштаб; он определяется везде в вашем JavaScript-коде. (Даже в ваших функциях). С другой стороны, переменные, объявленные внутри функции, определяются только внутри тела функции. Они являются локальными переменными и имеют локальную область действия. Параметры функции также считаются локальными переменными и определяются только внутри тела функции.
var scope = "global";
function checkscope() {
alert(scope);
}
checkscope(); // global
Как вы видите, вы можете получить доступ к переменной scope
внутри вашей функции,
но внутри тела функции локальная переменная имеет приоритет над глобальной переменной с тем же именем. Если вы объявляете локальную переменную или параметр функции с тем же именем, что и глобальная переменная, вы фактически скрываете глобальную переменную.
var scope = "global";
function checkscope() {
var scope = "local";
alert(scope);
}
checkscope(); // local
alert(scope); // global
Как вы видите, переменная внутри функции не будет перезаписывать глобальные переменные. Из-за этой функции мы помещаем код внутри собственной функции, для предотвращения перезаписывания других переменных , когда наш код становится большим и большим.
// thousand line of codes
// written a year ago
// now you want to add some peice of code
// and you don't know what you have done in the past
// just put the new code in the self executing function
// and don't worry about your variable names
(function () {
var i = 'I';
var can = 'CAN';
var define = 'DEFINE';
var variables = 'VARIABLES';
var without = 'WITHOUT';
var worries = 'WORRIES';
var statement = [i, can, define, variables, without, worries];
alert(statement.join(' '));
// I CAN DEFINE VARIABLES WITHOUT WORRIES
}());
- Вы можете больше узнать о JavaScript в этой книге: JavaScript: окончательное руководство, 6-е издание.