最近在写一些东西,需要用到闭包的一些知识,初听到这个概念的时候到网上搜了一些文章,大多数写的比较抽象,直到看到我心目中的牛人阮一峰写的一篇关于闭包的博客,从而豁然开朗,因此本文中也有一部分观点引用了阮一峰老师的。闭包是JavaScript中比较抽象的一个概念,很多初学者都没有很好的理解,在此将我所理解的闭包记录下来分享给大家,希望能对各位有所帮助。

  1. 变量的作用域

  在讲闭包之前,首先来说一下JavaScript中变量的作用域问题。在JS中变量分为两种:局部变量和全局变量,与此相对应的两种变量的作用域分别为局部作用域和全局作用域。在函数内部定义的变量为局部变量,在函数外部定义的变量称作全局变量。JS特有的语法规定全局变量在函数内部和外部都可以使用,但是局部变量只能在在函数内部及其子函数中使用,我们来看如下案例:

 

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训

var num = 18;             //全局变量function func(){    var age = 22;         //局部变量
    console.log(age,num);    //22 18}
func();
console.log(num,age);      //18    age is not defined

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式