访问函数范围外的变量

IT技术 javascript function variables scope
2021-03-10 18:54:05

这是我试图完成的简化版本,但我想在函数范围之外传递一个变量。我在函数外声明了变量,但无法得到它。

HTML:

<p>5</p>
<p>6</p>
<p>7</p>

JS:

$(document).ready(function () {
    var gsd = "";
    $("p").each(function () {
        if ($(this).text() === "5") {
            var gsd = $(this).text();
            alert(gsd); // this works
        }
    })
    alert("get var outside func" + gsd); //does not work
});
1个回答

gsd在函数中重新声明为新变量。删除函数内部的var前面gsd以解决gsd外部作用域中的问题。

@ user2232681 - 不, 的第一个定义gsd对于显示的代码是正确的。但是,它的作用域是连接到 的匿名函数$(document).ready,而不是全局的。如果你想gsd在页面的其他部分使用javascript,那么要么var在它前面省略,要么在全局范围内声明——直接在script标签内部
2021-04-17 18:54:05
那么,外部作用域应该是 gsd="",而不是 var gsd=""?
2021-04-25 18:54:05
gsd 不是全球...
2021-05-09 18:54:05