Always keep a beginn|

园龄:粉丝:关注:

2022-10-10 10:53阅读: 36评论: 0推荐: 0

js闭包理解

js闭包其实就是一句话 闭包变量就是函数对象的属性
例1

function f1(){

var n=999;

function f2(){
n++;
alert(n); 
}

return  f2;

}

var result=f1();

result();
result();

执行结果为 1000和1001,为什么呢?因为js中万物皆对象 f1在被调用时会创建一个函数对象A,n和f2是它的属性,而f2每次被调用时都是访问对象A的属性

例2

function f1(){

var n=999;

function f2(){
n++;
alert(n); 
}

return  f2;

}

var result=f1();

result();
var result=f1();
result();

执行结果是1000和1000,因为第一次f1被调用时创建了A对象,result获取的是A的f2属性,访问的是A对象的属性,而第二次f1被调用是创建的是B对象,result获取的是B的f2属性,访问的是B对象的属性。

本文作者:乘舟凉

本文链接:https://www.cnblogs.com/czlnb/p/16774830.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   乘舟凉  阅读(36)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起