JS-this关键字

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指的是全局对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值