如何在没有赋值的情况下声明 const 但在函数中赋值

How to declare const without an assignment but assign in a function

我需要在全局范围内声明 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
}

解决方案一:

使用 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);
});