I begin with ES6 and I don't understand why I can't access to my constant in my function. Here my code for you to understand.
const menuMain1Desktop = function () {
const LEVEL1_LINK_ALL = document.querySelectorAll('.menu-main-1__level-1-link')
const LEVEL1_ITEM_ACTIVE = document.querySelector('.menu-main-1__level-1-item--active')
// ...
function openMenuMain1Level2(el) {
LEVEL1_ITEM_ACTIVE.classList.remove('menu-main-1__level-1-item--active')
// Here LEVEL1_ITEM_ACTIVE is null
}
for (let i = 0; i < LEVEL1_LINK_ALL.length; i++) {
const level1ItemThis = this.parentNode
const level1ActiveClass = this.parentNode.classList.contains('menu-main-1__level-1-item--active')
if (level1ActiveClass) {
closeMenuMain1Level2(level1ItemThis)
} else {
openMenuMain1Level2(level1ItemThis)
}
}
}
In the function openMenuMain1Level2, LEVEL1_ITEM_ACTIVE is null, why? My constant is in global scope.
If I add constant LEVEL1_ITEM_ACTIVE in my function then it works.
Thanks