首页 > 解决方案 > 如何在没有赋值的情况下声明 const 但在函数中赋值

问题描述

我需要在全局范围内声明 const $element(指向HTML元素的变量),以便任何函数都可以访问它。但是$element是由jQuery内部分配的所需变量分配的$(function(){})。如何满足这两个条件?

const $element; // error caused by no assignment but $ is not ready
$(function(){
    const $element = $("#SomeDiv"); //cannot assign here
    DivResize(100);
});
function DivResize(h){
    $element.css("height", h) //need to call $element from global scope
}

标签: javascriptjqueryvariable-assignment

解决方案


解决方案1:

使用let而不是const.

解决方案 2:稍微重构您的代码

你真的需要这个DivResize()函数是全局的吗?

是: 使函数接受 $element 作为参数。

$(function(){
    const $element = $("#SomeDiv");
    DivResize($element, 100);
});
function DivResize($element, h){
    $element.css("height", h);
}

否: 在 jQuery 回调中移动函数。

$(function(){
    function DivResize(h){
        $element.css("height", h);
    }
    // ...
    const $element = $("#SomeDiv");
    DivResize(100);
});

推荐阅读