欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于JavaScript闭包的粗浅理解

程序员文章站 2023-08-28 23:44:41
在JavaScript中,使用var创建变量,会创建全局变量或局部变量。 只有在非函数内创建的变量,才是全局变量,该变量可以在任何地方被读取。 而在函数内创建变量时,只有在函数内部才可读取。在函数外部时,调用函数也无法读取局部变量。 function test(){ var g = 5; } // ......

 在javascript中,使用var创建变量,会创建全局变量或局部变量。

只有在非函数内创建的变量,才是全局变量,该变量可以在任何地方被读取。

而在函数内创建变量时,只有在函数内部才可读取。在函数外部时,调用函数也无法读取局部变量。

function test(){
var g = 5;
}
// 提示无法读取未定义属性
console.log(test().g);

var c = new test();
// 出现一个没有属性的test对象
console.log(c);
// undefined
console.log(c.g);

 如果需要在函数外部访问局部变量,则需要使用return关键词。

function test(){
    var g = 5;
    return g;
}
// 5
console.log(test());