javascript-this

this指的是谁?

this 指的是当前调用该方法对象,其实就是调用链上的最近的一个对象。

所以this指的一定是对象,如果没有实例化对象,那就是window.

function fa(){

       alert(this.constructor);

}

调用方式:fa(); 


  fa定义了一 个函数(对象),但没有实例化这个对象,此时fa的域为window,也是第一个调用fa的对象。

调用方式:var b=new fa();

此时new了一个对象,所以this的构造函数为fa()


var c=2;
    var a={
        c:0,
        b:function(){
            alert(this.c);
        }
    };
  调用方式:  a.b();

此时对象为a(json对象);


对象调用和函数调用有什么区别

function fa(){
        this.b=100;
    }
    fa();
    alert(b);


分析:调用fa 时this为window.在fa方法中,this.b=100,相当于window.b=100,此时的b已经不是局部变量,已变成成员变量,对window对象有影响

function fa(){
        this.b=100;
    }
    new fa();
    alert(b);

分析:new fa() 时this为new 出来的对象,.在fa方法中,this.b=100对window对象没有影响

var _this=this;有什么用?

作用:保存对当前对象的引用

    var  A=function(){
        var _this=this;
        _this.fa=function(){      //此处和this.fa=function()是一样的
                alert("success");
        }
        _this.fb=function(){     //此处和this.fb=function()是一样的
            $.ajax({
                type : "post",
                url : "",
                success : function(msg) {

                   //此方法处在$对象中,this的值已改变。this指的是$对象。

                    //此处要访问fa方法不能用this只能用_this;此处的this指的是$,即jQuery对象,不是A的对象
                    _this.fa();
                }
            })
        }
    }
    var a=new A();
    a.fb();  // alert success





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值