我从ES6开始,我不明白为什么我无法在我的函数中访问我的常量。 这是我的代码供您理解。
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)
}
}
}
在openMenuMain1Level2函数中,LEVEL1_ITEM_ACTIVE为空,为什么? 我的常数在全球范围内。
如果我在我的函数中添加常量LEVEL1_ITEM_ACTIVE,那么它可以正常工作。
由于