javascript:这里的this所示变量还有什么实际意义呢?

this方法有什么用呢?这种方法必须要有具体的绑定对象才能调用的呀,但是由于是匿名函数自执行,还有绑定对象么?写this属性还有意义么?
[code="java"]ClassID=(function(){  
     var id =0 ; //私有的那个值  静态私有属性   
     this.get1=function(){
         return id;
     };
     return function (){ //外层函数返回一个有权访问私有值的嵌套的函数,就是我们保存在ClassID中的嵌套函数  
         this.getId=function(){
             get1();
         }
     };   
})();  

ClassID.get3=function(){
     return get1();
}
alert(ClassID.get3());//0
[/code]
但是这段书上代码竟然可用 我实在是不理解了 求解

[quote]this方法有什么用呢?这种方法必须要有具体的绑定对象才能调用的呀,但是由于是匿名函数自执行,还有绑定对象么?写this属性还有意义么?[/quote]

楼主说的是对的,就这段代码来说,里面的this完全没用。

这段代码能正常运行,完全因为里面的this其实就是window对象。在楼主给出的代码里,把this去掉(或者把this改成window),效果相同。(因为默认的作用域对象还是window)

所以说,楼主的结论:自执行的匿名函数,写this没有意义。是正确的。

总之,这是一段非常混乱的代码:

那个return的function完全是废物代码,没用。
[code="javascript"]ClassID=(function(){

var id =0 ; //这个id的确只局限于匿名函数内有效

this.get1=function(){//这儿的this就是window
return id; //因为get1函数被赋值在window上,所以形成了一个闭包,从而在离开了匿名函数的执行范围以后id变量仍然存活,可以通过闭包来访问
};

return function (){}; //这儿只是个普通对象而已,下面没执行这个函数

})();

ClassID.get3=function(){ //ClassID是个函数,函数也是个对象,对象也可以赋值,在ClassID对象上增加一个函数get3
return get1(); //这儿访问的是window.get1()
}

alert(ClassID.get3());//0 [/code]

[url]http://www.cnblogs.com/felix2007/archive/2007/03/21/682670.html[/url]

1、在javascript中函数本身也是对象
2、参考(function(){})() 语法

2.1、(function(){}) -->拿到匿名函数对象 所以是个对象 因此里边可以用this 代表当前对象 不信你可以在this.get1调用下alert(this)
2.2、(function(){})() 执行那个函数 又返回了内部的匿名函数
[url]http://hi.baidu.com/infol/item/edaef3d2b91eddfdca0c392b[/url]
3、闭包的概念
在return的内部函数中调用外部函数的局部变量(此处内部函数调用getl getl调用了id局部变量)
[url]http://kb.cnblogs.com/page/110782/[/url]

JS中的this一句话,就是谁Call这个方法,this就是谁。所以line3中的this就是Window对象,line7中的this要看谁call这个返回的函数。