学习笔记——Javascript中的this

this, 在JS中this与C++,Java的概念是不一样的,所以常有误解,出现错误,尤其在闭包中。其实只要记着一句话就能明白JS中的this,this对象并不是在定义时绑定,而是在执行时绑定

匿名函数都有全局性,通常this指向widow,但对于编写闭包的方式不用,这一点就不会这么明显

 1 var name = "The Window";
 2 var object = {
 3      name : "My Object",
 4      getNameFunc : function(){
 5        return function(){
 6         return this.name;
 7     };
 8     }
 9 };
10 alert(object.getNameFunc()());  //The Window

当然,可以通过call()或apply()改变函数执行环境,this就会指向其他对象,或者用将this保存在一个变量中,让闭包给以访问到该变量即可

var name = "The Window";
var object = {
    name : "My Object",
    getNameFunc : function(){
        var This = this;
        return function(){

            return This.name;
        };
    }
};
alert(object.getNameFunc()());  //My Object

 

posted @ 2013-09-11 11:10  没头脑做前端  阅读(126)  评论(0)    收藏  举报