频道栏目
首页 > 程序开发 > web前端 > HTML/CSS > 正文
作用域及作用域链,闭包
2017-07-08 11:38:57         来源:smileboyjian的博客  
收藏   我要投稿

作用域及作用域链,闭包

作用域:指变量或者方法的作用范围

作用域链:程序在执行的时候系统会创建一个环境栈,首先压入栈底的是全局环境,同时也会给它创建一个变量对象,管理这个全局环境中的变量.当调用某个函数的时候,这个函数就会被压入环境栈,同时也会给它创建一个变量对象.系统会把这些变量对象链接起来,开头永远都是正在执行的函数,结尾是去全局环境.

一、变量的作用域

01 局部变量与全局变量

局部变量 声明在函数体内 作用域函数体内 形参

全局变量 声明在函数体外 作用域整个页面中 在函数体不加var关键字

在函数体中当局部变量与全局变量重名的时候,局部变量起作用;当想使用全局变量时,使用window.变量名

02 声明提升

当执行函数的时候,会先准备工作,会先将本函数体中声明的局部变量,提前声明了。

01 当执行script标签时,先把全局变量与单独定义的函数的声明给执行了,然后在去逐行的执行script标签之间的代码

02 当执行函数的时候,先把该函数中的局部变量与内部函数的声明给执行了,然后在区逐行执行函数体的代码

03 作用域链【面试重点】

作用链是有方向的,是从内到外的

二、匿名函数

01 什么是匿名函数

没有名字的函数

02 怎么调用匿名函数

03 匿名函数的作用

(1)模拟块级作用域

(2)解决团队开发命名冲突的问题

匿名函数+命名空间

三、闭包

01 什么闭包?

使用了外部函数的局部变量的内部函数,并且该内部函数被返回到外部函数的函数体外,那么这个内部函数就是闭包。

【判断是否是闭包】

(1) 内部函数;

(2)内部函数中使用了外部函数的局部变量;

(3)内部函数被返回到了外部函数体外。

【结论】闭包是链接函数内部与外部的桥梁。

留意定时器,有时候它也是闭包.

\

定时器被window调用了,它的值也就被传出去了.

02 闭包的优缺点

【优点】避免污染全局变量,可以让局部变量长时间的驻留在内存中。在函数体外可以使用函数体内的局部变量;

【缺点】变量长时间驻留在内存中,造成内存的浪费。所以使用闭包需谨慎。

03 闭包的使用

01 DOM操作--- 通过循环的方式给元素添加响应函数

02 使用定时器时,需要给定时器的函数传参,但是传参只有在调用函数的时候才可以传参。我们就可以把定时器的函数变成闭包,给他的外部函数传参。

03 封装常量

\

4 .在IE8下添加点击事件

\
点击复制链接 与好友分享!回本站首页
上一篇:CSS的高级使用
下一篇:两个Model之JSONModel
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站