Является ли переменная, равная функции, глобальной переменной? - PullRequest
2 голосов
/ 18 апреля 2019

В вопросе об одном из моих опросов нас попросили определить, сколько глобальных переменных содержится в следующем блоке кода:

    var one = 1;
    var two = 2;
    var multiplier = function(number){
    }

Я ответил, что их два: один и два .Тем не менее, мой учитель отметил это неправильно и заявил, что есть 3 глобальные переменные.Является ли переменная, которая равна функции, все еще считается глобальной переменной?

1 Ответ

2 голосов
/ 18 апреля 2019

Функции являются первоклассными в Javascript - их можно назначить любой переменной.Переменная может содержать любое значение - число (как с one и two), строка и т. Д., Объект или функция .

Глобальная переменная, которая происходитуказание на функцию (как в случае multiplier) по-прежнему является глобальной переменной.

Обратите внимание, что объявления функций на верхнем уровне также создают глобальные переменные, например:

function multiplier(number) {
}

// The function declaration created a property on the global object:
console.log(typeof window.multiplier);
// just like:
var one = 1;
console.log(typeof window.one);

Конечно, глобальные переменные лучше избегать , когда они не нужны, и они редко необходимы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...