关于Javascript闭包的理解(三)
发布日期:2021-05-13 07:41:51 浏览次数:17 分类:博客文章

本文共 4760 字,大约阅读时间需要 15 分钟。

���������closure������Javascript������������������������������������������������������������������������������������������

���������������������������������������Javascript���������������������������������

������������������������

������������������������������������Javascript���������������������������

���������������������������������������������������������������������

Javascript������������������������������������������������������������������������������

var
 n
=
999
;
function
 f1(){
������alert(n);
}
f1(); 
//
 999

���������������������������������������������������������������������������

function
 f1(){
������var
 n
=
999
;
}
alert(n); 
//
 error

���������������������������������������������������������������������������������������var������������������������������������������������������������������������

function
 f1(){
������n
=
999
;
}
f1();
alert(n); 
//
 999

������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������

function
 f1(){
  n
=
999
;
  
function
 f2(){
     alert(n); 
//
 999
  }
}

������������������������������f2���������������������f1���������������f1���������������������������������f2���������������������������������������������f2���������������������������f1 ������������������������������Javascript���������������������������������������������chain scope���������������������������������������������������������������������������������������������������������������������������������������������������������������

������f2������������f1������������������������������������f2���������������������������������������f1���������������������������������������

function f1(){
   n
=999;
   
function f2(){
    ������alert(n);
   }
   
return f2;
}
var result=f1();
result(); 
// 999

���������������������

���������������������f2������������������������

���������������������������������������closure���������������������������������������������������������������������������������������������������������������������

���������Javascript������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������

���������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������

function
 f1(){
������var
 n
=
999
;
������nAdd
=
function
(){n
+=
1
}
������function
 f2(){
������������alert(n);
������}
������return
 f2;
}
var
 result
=
f1();
result(); 
//
 999
nAdd();
result(); 
//
 1000

���������������������result���������������������f2������������������������������������������������������999���������������������1000������������������������f1������������������n���������������������������������������f1���������������������������

���������������������������������������f1���f2������������������f2������������������������������������������f2������������������������f2������������������f1���������f1���������������������������������������������������������������������������garbage collection������������

���������������������������������������������������������nAdd=function(){n+=1}������������������������nAdd������������������var������������������ nAdd���������������������������������������������������������nAdd������������������������������anonymous function������������������������������������������������������������nAdd������������������setter���������������������������������������������������������������������

������������������������������

1���������������������������������������������������������������������������������������������������������������������������������������������������������������IE������������������������������������������������������������������������������������������������������������������

2������������������������������������������������������������������������������������������������������������������object������������������������������������������������Public Method������������������������������������������������private value������������������������������������������������������������������������������

���������������

���������������������������������������������������������������������������������������������

var
 name 
=
 ���The Window���;
var
 object 
=
 {
������name : "My Object",
������getNameFunc : 
function
(){
������return
 
function
(){
������������return
 
this
.name;
������};
}
};
alert(object.getNameFunc()());

 

 ���������

上一篇:ASP.NET性能优化
下一篇:关于Javascript闭包的理解(二)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月15日 14时56分20秒