js中this的指向
1、如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window。
2、如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。
var o = {
    a:10,
    b:{
        a:12,
        fn:function(){
            console.log(this.a); //12
        }
    }
}
o.b.fn();特殊情况1:
var o = {
    a:10,
    b:{
        a:12,
        fn:function(){
            console.log(this.a); //undefined
            console.log(this); //window
        }
    }
}
var j = o.b.fn;
j();
特殊情况2:
构造函数版this,new关键字可以改变this的指向
function Fn(){
    this.user = "追梦子";
}
var a = new Fn();
console.log(a.user); //追梦子
特殊情况3:
当this碰到return时,如果返回值是一个对象,那么this指向的就是那个返回的对象(null,undefined除外),如果返回值不是一个对象那么this还是指向函数的实例。
function Fn()  
{  
    this.user = '追梦子';  
    return {};  
}
var a = new Fn;  
console.log(a.user); //undefined 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号