私有作用域&闭包机制

闭包:是一种机制,函数执行的时候会形成一个私有作用域,来保护里面的变量不受外界干扰,我们把这种机制叫做闭包,私有变量有两种:一种是参数,第二种是在私有作用域下也解释的变量

函数执行的步骤:
1.形成私有作用域
2.给形参赋值
3.预解释
4.函数体执行

function fn(){
var f=0;
f++;
console.log(f)
}
console.log(f);

全局:预解释:function fn=xxxfff000; 代码执行:f没有 所以报错了

var a=1;
var b=2;
function sum(a){
  var b=10
a++
b++
console.log(a,b)}
//全局预解释:var a,b,function sum=xxxfff000
//全局执行:a=1,b=2,sum(1)形成一个私有作用域
//1.给参数赋值,a=1
//2.私有作用域预解释:var b
//3.b=10,a=2,b=11
//全局中console.log(a,b);1,2

在私用作用域下遇到变量先看是不是自己的私有变量(两者),是的话就是私有的,不是的话就网上一级找,如果没有就继续找,直到找到全局下为止,还没找到就报错了,这种查找机制就叫做"作用域链",私有作用域下的私有变量外界访问不到,但是可以获取外界的"我的就是我的,你的也可以是我的"

转载于:https://www.cnblogs.com/Jiazexin/p/7080406.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值