2021-09-07

一. JavaScript 的作用域

(一)作用域的含义:

作用域:您有权访问的变量集合

(二)全局变量与局部变量

1.全局变量:函数之外、在全局中定义的;网页的所有脚本和函数都能够访问它。全局作用域是 window。所有全局变量属于 window 对象。
2.局部变量:函数中定义的, 只能在该函数内部访问
3.自动全局:你为一个尚未定义的变量赋值,该变量自动被定义为全局变量

二. JavaScript闭包的产生、作用与危害

(一)什么是闭包,闭包怎么产生的?

闭包就是能够读取其他函数中的变量
闭包的产生:函数套函数,里面的函数可以访问到外边函数定义的变量
闭包的原理:闭包的实现原理,其实是利用了作用域链的特性,我们都知道作用域链就是在当前执行环境下访问某个变量时,如果不存在就一直向外层寻找,最终寻找到最外层也就是全局作用域,这样就形成了一个链条。
举个例子:
在这里插入图片描述
输出
在这里插入图片描述

(二)闭包的作用

1.实现公有变量,做累加器,自增
2.可以做缓存(外部不可见)
3.可以实现封装,属性私有化
4.模块化开发,防止污染全局变量
5.内存泄露,访问不到的变量占着内存(ie浏览器的bug)

1.举个例子
在这里插入图片描述
输出:
在这里插入图片描述

闭包解决
在这里插入图片描述
输出:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值