首页 > 代码库 > javascript --学习基础总结
javascript --学习基础总结
闭包
下面是百度百科的解释:
闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。
也就是说一个代码块中使用了自由变量
var d=10; function df(){ console.log(d);//这个时候d就是自由变量了 }
那下面来看一个简单的闭包的例子:
let t1=(function d(){ var dd=1; return function(){ return dd++; }; })();//立即执行 console.log(t1());//1 console.log(t1());//2
那为什么第一次和第二次方法的值会不同呢?
其实正是因为在返回的函数中使用了一个自由变量,为了使用这个自由变量,编译器会
保存function d(){}的执行上下文
//说静态变量区
共享function d(){}的变量,这也是为什么第一次是1第二次是2了
javascript --学习基础总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。