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

JS-this关键字

2016-04-11 08:55 411 查看
this指的是,调用函数的那个对象。

指向全局

var x = 1;
function test(){
var x =2;
alert(x+","+this.x);
}
test();


这个时候的结果是:2,1

此时的this指向全局

作为某个对象的方法调用,指向这个上级对象

function test(){
var x=1;
alert(x+","+this.x+","+window.x);
}
var o = {
x:2
};
var x = 3;
test(); // 1
o.test = test;
o.test();


这个时候的结果分别是1,3,3和1,2,3,在test作为o的方法时,this指向o

作为构造函数

function test(){
var x=1;

alert(x+","+this.x+","+window.x);
}
var x=2;
var o= new test();


此时的结果是1,undefined,2,this指向o,但是o的x还没有定义。

apply

function test(){
var x=1;
alert(x+","+this.x+","+window.x);
}
var x=2;
var o={x:3,test:test};
o.test.apply();


apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。

apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为1,2,2,证明this指的是全局对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js