论坛首页 入门技术论坛

JS 闭包

浏览 26071 次
锁定老帖子 主题:JS 闭包
该帖已经被评为新手帖
作者 正文
   发表时间:2009-04-10  
可以给详细相关资料吗?
0 请登录后投票
   发表时间:2009-04-12  
histan 写道
可以给详细相关资料吗?

知识库中的javascript面向对象技术基础有六讲,非常不错,可以去看下的
0 请登录后投票
   发表时间:2009-04-13  
学习了,有了一个大概的了解,这个和平常的程序里的闭包概念差不多
0 请登录后投票
   发表时间:2009-04-14  
javaeys上有一篇关于js的面向对象的讲解,还有《悟透JavaScript》资料,结合起来看,看完后就会茅塞顿开。
0 请登录后投票
   发表时间:2009-04-20  
终于可以发贴了..
0 请登录后投票
   发表时间:2009-04-21  
感觉就是还是按照行执行代码,只不过遇到函数的时候就继续,遇到没有var定义的变量,则联系上下文查找var。说明对var的处理优先级很高。
0 请登录后投票
   发表时间:2009-04-22  
民工精髓 写道
cocococoon 写道
Army 写道
最后一个例子还是不太明白,var声明不是被提前了么?


稍微修改一下最后一个例子的代码你就明白了:
function outerFun()  
{  
     alert(a);     // got 4
     a =0;  
     alert(a);     // got 0    
 }  
 var a=4;  
outerFun();  
alert(a);  



改成这样也许更容易理解,函数的声明在前在后没有关系,只跟调用有关
var a=4;    
outerFun();    
alert(a); 
function outerFun()    
{    
    alert(a);     // got 4  
    a =0;    
    alert(a);     // got 0      
}

改完后outerFun还没有声明呢,是undefined,js是一块块的按顺序解释执行。
0 请登录后投票
   发表时间:2009-04-23  
shinelgz 写道
没有用var 声明的局部变量,都视为全局变量
function test(){
          i = 10;//全局变量
}
var i = 0;
test();
alert(i);//out: 10
上面这个函数就是闭包了。


同意。
0 请登录后投票
   发表时间:2009-04-27  
http://www.iteye.com/wiki/Object_Oriented_JavaScript/1317-javascript-object-oriented-technology-6
这里讲的比较详细。。。
0 请登录后投票
   发表时间:2009-08-19  
<script>
function outerFun()  
{  
    var b=0;  
    function innerFun()  
    {  
        a=1;  
        alert(a);  
    }  
    return innerFun;  //注意这里  
}  
var obj=outerFun();  
obj();  //结果为1  
obj();  //结果为2  
alert(outerFun.b);  //结果为undefined
alert(obj.b);     //结果为undefined
</script>

有人能为我解释一下:最后两个为什么是undefined嘛?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics