您的位置:首页 > Web前端 > JavaScript

javascript-this

2016-08-18 15:39 204 查看

this指的是谁?

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

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



function fa(){

alert(this.constructor);



}

调用方式:fa();








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

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



此时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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript