+ -
当前位置:首页 → 问答吧 → 闭包的问题 请教

闭包的问题 请教

时间:2009-05-02

来源:互联网

复制代码
  1.         function show_hint(time){
  2.             setTimeout(function(){ $('#hint').fadeIn(800);
  3.                                 },time);
  4.         };
  5.         
  6.         show_hint(1000);



复制代码
  1.         function show_hint(){
  2.             $('#hint').fadeIn(800);
  3.         };
  4.         setTimeout(show_hint,1000);    


第一段代码是不是就是所谓的闭包 初学JS还不是十分的清楚闭包的概念

作者: baljeans   发布时间: 2009-05-02

是的

一个简单的例子:
复制代码
  1. function a(x) {
  2.   return function () {alert(x);};
  3. }
  4. var b = a(5);
  5. b(); // 弹出5
函数a返回了它内部的一个匿名函数对象,而该函数又引用了函数a的变量x。
一般情况下,函数a调用完后,它的变量也就消失了。但b引用了它内部的匿名函数,于是获得了本应消失的变量x。

简单来说,JavaScript里的闭包就是内部函数可以访问外部函数的变量,并在该内部函数存在期间,一直可以获取外部函数的变量在该闭包定义或创建时的值。

作者: keakon   发布时间: 2009-05-03

相关阅读 更多