Максим, это я ваши косяки паралельно исправил, const как и let давно кросбразерные https://caniuse.com/#feat=const
и есть весьма серьезные аргументы чтобы не писать больше var items сменил на item посколько аргумент принимает один элемент а не множество
Стрелочная функция поскольку в вашем случае ненужен this, по количеству букв она короче а существуют иследования подтверждающие что на чтение кода программист тратит времени больше чем на написание.
Переменнуюarray я переименовал в arr поскольку есть нативный объект Array, и несмотря на другой регистр это может породить путаницу при беглом просмотре кода.
а замыкание это доступность переменных и функций из выше стояшего скопа, ниже стоящему в структуре. Это то где я вывел в консоль x, несмотря на то что x определен в выше стоящей области видимости.
Тот же самый код но на вашем варианте
var x = 2;
var array = [1,2,3,4,5];
array.map(function( items ){
console.log(x);
})
Alexander Litvinenko, вопрос не я задавал. я просто ответил что тут нет никакого замыкания, просто пример на столько прост что я подумал ну какое тут замыкание, но по определению оно действительно тут есть, я был не прав...
В данном примере она и так доступна извне (то есть в области видимости).
Если на момент выполнения х не может быть доступен, то попробуйте .bind()
var x = 2;
var f = function( y, item ){
console.log(y,item);
}.bind(null, x); // ну или this вместо null, смотрите сами
var array = [1,2,3,4,5];
array.map(f)