This question already has answers here:
Is this an example of variable shadowing in JavaScript?

(5个答案)


7年前关闭。




这是我要完成的工作的简化版本,但是我想在函数范围之外传递变量。我在函数外部声明了变量,但无法获取它。

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

最佳答案

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

09-25 19:21