javascript中的范围const

时间:2017-04-05 14:48:16

标签: javascript ecmascript-6

我从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,那么它可以正常工作。

由于

0 个答案:

没有答案