在自执行匿名函数中访问变量

时间:2018-12-30 15:07:00

标签: javascript

根据我的知识,

无法从外部访问自执行匿名函数内部的变量,但是为什么可以从外部访问var q ,为什么不能从外部访问var p >

(function(){ 
    var p = q = 20;
})()
alert(q) --> 10
alert(p) --> p is undefined is the result im getting,

2 个答案:

答案 0 :(得分:2)

在匿名函数中定义的变量将无法在外部访问。但是,在您的示例中,您将变量 p 设置为范围变量,并将 q 设置为全局变量。您在这里寻找正确的方法是:

var p;
var q;
p = q = 20;

答案 1 :(得分:2)

为避免全局变量,您需要在每个变量名称之前添加WAComponent#childrenvar。如果省略这些关键字,则变量以全局开始。在您的情况下,q是全局的